使用JavaScript實現棧
阿新 • • 發佈:2020-12-24
技術標籤:資料結構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());