1. 程式人生 > 其它 >使用JavaScript實現棧

使用JavaScript實現棧

技術標籤:資料結構javascript

JavaScript實現棧

什麼是棧

棧(stack)又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。

簡單的說就是先進後出的線性表

棧的功能

1.將元素壓棧(push)

2.將元素取出(pop)

3.檢視棧頂元素(peek)

4.判斷棧是否為空(isEmpty)

5.獲取棧中元素個數(getNum)

6.toString方法

程式碼的實現

通過陣列實現棧

函式的封裝
function Stack(){
				//棧中屬性
				this.items = []
				//將元素壓棧,使用JavaScript陣列中的push方法
				Stack.prototype.push = function(element){
					this.items.push(element);
				}
				//將元素取出,使用JavaScript陣列中的pop方法
				Stack.prototype.pop = function(){
					return this
.items.pop(); } //檢視棧頂元素 Stack.prototype.peek = function(){ return this.items[this.items.length - 1]; } //判斷棧是否為空 Stack.prototype.isEmpty = function(){ return this.items.length == 0; } //獲取棧中元素個數 Stack.prototype.size = function(){ return this.items.length }
//toString方法 Stack.prototype.toString = function(){ var resultString = ' '; for(var i = 0;i < this.items.length ;i++){ resultString += this.items[i] + ' ' } return resultString; } }
函式的呼叫
var s = new Stack();
			s.push(25);
			s.push(62);
			s.push(1);
			s.push(23);
			alert(s);
			s.pop();
			s.pop();
			alert(s);
			
			alert(s.peek());
			alert(s.size());
			alert(s.toString());