0
我不知道是否有一種方法來實現僅使用棧的列表。在那兒?有沒有一種方法可以僅使用堆棧來實現列表?
我不知道是否有一種方法來實現僅使用棧的列表。在那兒?有沒有一種方法可以僅使用堆棧來實現列表?
您可以使用兩個堆棧製作(低效)列表。當您需要插入或檢索項目時,只需將項目從一個堆棧移到另一個堆棧,直到獲得正確的索引。
下面是在JavaScript的例子:
function List() {
this.stack1 = [];
this.stack2 = [];
Object.defineProperty(this, 'length', {
get: function() { return this.stack1.length + this.stack2.length; }
});
}
List.prototype.item = function(index) {
if(index < this.stack1.length) {
while(index < this.stack1.length - 1) {
this.stack2.push(this.stack1.pop());
}
return this.stack1[this.stack1.length - 1];
}
while(index > this.stack1.length) {
this.stack1.push(this.stack2.pop());
}
return this.stack2[this.stack2.length - 1];
};
List.prototype.insert = function(item, index) {
this.item(index - 1);
this.stack1.push(item);
};
的列表中,你的意思是排隊becaue我看不到棧和列表之間的任何連接...
如果是這樣,你可以使用兩個疊加:s1 san s2,想象它們是從下到上。 s1是列表的頭部,s2是尾部。此列表的 功能: