JS資料結構和演算法 棧

2021-10-25 09:44:16 字數 833 閱讀 7481

棧是一種後進先出的資料結構

其限制是僅允許在一端進行插入和刪除。這一端被稱為棧頂,另一端稱為棧底;

lfo( last in first out)後進入的元素第乙個彈出棧空間;

向—個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;

從—個棧刪除元素又稱作岀棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素;

基於陣列實現棧:

class

stack

// 新增乙個新元素到棧頂

push

(el)

// 移除棧頂元素,返回被移除元素

pop(

)// 返回棧頂的元素

peek()

// 判斷是否為空

isempty()

// 清空

clear()

// 返回元素個數

getsize()

// tostring

tostring()

return str

}}

實現十進位制轉二進位制?

思路:將十進位制數字不斷和2相除,保留餘數,直到結果取整後為0。將得到的餘數從後向前拼接組成二進位制資料

// 十進位制轉二進位制

function

dec2bin

(number)

// 從後向前拼接棧中資料

let binstr =

''while

(!stack.

isempty()

)return binstr

}

js資料結構和演算法(二)棧和佇列

棧和佇列都是動態的集合,在棧中,可以去掉的元素是最近插入的哪乙個。棧實現了後進先出。在佇列中,可以去掉的元素總是在集合中存在的時間最長的那乙個。佇列實現了先進先出的策略。棧的官方定義 棧 stack 是乙個後進先出 last in first out,lifo 的線性表,它要求只在表尾進行刪除和插入...

js資料結構 棧

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

js資料結構 棧

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