JS資料結構(2) 棧

2021-10-07 08:50:11 字數 1700 閱讀 6515

棧(stack)是一種** lifo(last-in-first-out,後進先出)** 的資料結構。

它是一種受限的線性表,它的限制是僅允許在表的一端進行插入和刪除運算,這一端就被稱為棧頂,另外一端就是棧底

向乙個棧新增乙個新元素叫做進棧、入棧或者壓棧,它是把新元素放到棧頂元素的上面,成為新的棧頂元素。

從乙個棧中刪除元素叫做出棧或者退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。

棧的結構:

建立棧

function

stack()

// 出棧

stack.prototype.

pop=

function()

// 檢視棧頂元素

stack.prototype.

peak

=function()

// 判斷棧是否為空

stack.prototype.

isempty

=function()

// 檢視棧中元素個數

stack.prototype.

size

=function()

// 把棧內元素以字串的形式返回

stack.prototype.

tostring

=function()

}

棧的使用
var s =

newstack()

;s.push(10

);s.push(20

);s.push(30

);s.push

(100);

console.

log(s)

;//結果為:stack

console.

log(s.

pop())

;// 結果為:100

console.

log(s.

pop())

;// 結果為:30

console.

log(s)

;// 結果為: stack

console.

log(s.

isempty()

);// 結果為:false

console.

log(s.

peak()

);// 結果為: 20

console.

log(s)

;// 結果為: stack

console.

log(s.

tostring()

);// 結果為: 10 20

十進位制轉換為二進位制:

function

dec2bin

(decnumber)

var binstring ='';

while

(!s.

isempty()

)return binstring;

}console.

log(

dec2bin

(100))

;結果輸出為:1100100

js描述的 資料結構 棧結構 (2)

1.一種受限制的線性結構,這種結構可以基於陣列來實現。2.可以抽象成乙個容器,上面的是棧頂,底下的是棧底。所以僅允許對棧頂進行操作,1.函式式呼叫棧 基於棧的形式來進行函式的整體呼叫。2.遞迴 棧溢位就是其中的一點。push 新增乙個元素到棧頂。pop 移除棧頂的元素。peek 返回棧頂的元素,不對...

js描述的 資料結構 棧結構 (2)

1.一種受限制的線性結構,這種結構可以基於陣列來實現。2.可以抽象成乙個容器,上面的是棧頂,底下的是棧底。所以僅允許對棧頂進行操作,1.函式式呼叫棧 基於棧的形式來進行函式的整體呼叫。2.遞迴 棧溢位就是其中的一點。push 新增乙個元素到棧頂。pop 移除棧頂的元素。peek 返回棧頂的元素,不對...

js資料結構 棧

棧是一種遵循後進先出 lifo 的資料結構,其總共就兩個主要的操作,分別是push和pop。看上面這張圖可以大致的知道,棧的幾個特點 push操作 pop操作 通過上面的幾個特點,來看一看js如何用 實現乙個棧 class stack push操作 push x push乙個新的資料,棧頂的指向也同...