js 資料結構 棧

2022-06-15 23:51:14 字數 1142 閱讀 8440

棧:先進後出,新新增和待刪除的元素都儲存在棧頂。可以用陣列的push方法入棧,pop出棧。

class stack 

push(element)

pop()

peek()

isempty()

size()

clear()

print()

tostring()

}

棧的實際應用:二進位制轉十進位制、十進位制轉換任意進製(二進位制、八進位制、十六進製制);平衡圓括號、漢諾塔問題

/**

* 十進位制轉二進位制

* @param num --十進位制資料

* @returns 轉換後的二進位制數

*/function devideby2(num)

while (!stack.isempty())

return binarystr;}

/** * 十進位制轉換為任意進製

* @param num

* @param base

* @returns

*/function baseconvert(num,base)

while (!stack.isempty())

return basestr;

}

檢查括號是否匹配:左括號入棧,當檢測到右括號時,進行出棧,看出棧的左括號與右括號是否可以配對,以此類推,直到棧為空。

/**

* 括號配對

* @param str 包含括號的字串

* @returns 配對成功返回true,失敗返回false

*/function checksymbol(str) ',

balanced = true,

index = 0,

tmp,

stack = new stack(),

arr = str.split('');

while (balanced && index < arr.length)

else

else }}

index++;

}return (balanced && stack.isempty());

}

js資料結構 棧

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

js資料結構 棧

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

js實現資料結構 棧

棧是一種遵從後進先出 lifo 原則的有序集合。新新增的或待刪除的元素都儲存在棧的同一端,稱作棧頂,另一端就叫棧底。後進先出 新元素都靠近棧頂,舊元素都接近棧底,所以新元素會比舊元素要先出棧 放在桌子上的一堆書和餐廳裡堆放的盤子 建立棧 建立乙個類來表示棧,宣告棧的各種屬性和方法,如下 宣告棧和棧的...