js中數(shù)據(jù)結(jié)構(gòu)

1. 棧stack

棧是一種從后進(jìn)先出原則的有序集合。新添加或待刪除的元素都保存再棧的同一端赏半,稱作棧頂,另一端叫做棧底淆两。在棧里断箫,新元素都是靠近棧頂,舊元素都接近棧底秋冰,? ? 例子:一摞書
創(chuàng)建一個基于數(shù)組的棧
需要提供一下功能
push(element(s)) : 添加一個(或幾個)新元素到棧頂
pop() :? 移除棧頂?shù)脑刂僖澹瑫r返回被移除的元素
peek() :返回棧頂?shù)脑兀粚W鋈魏涡薷?br>isEmpty(): 如果棧里面沒有任何元素就返回true,否則就返回fasle
clear(): 移除棧里面的所有元素
size(): 返回棧里面的元素個數(shù)

class Stack {

constructor(){

this.items = []

}

push(element){

this.items.push(element)

}

pop(){

return this.items.pop()

}

peek(){

return this.items[this.items.length - 1]

}

clear(){

this.items = [];

}

size(){

return this.items.length;

}

isEmpty(){
? ? return?this.items.length===0;
}

}
應(yīng)用的中例子剑勾,將十進(jìn)制轉(zhuǎn)二進(jìn)制

function change(number){

let rectItems? = new Stack();

let result = ''

let docNumber = number;

while(docNumber > 0 ){

? ? ? ? let rem? = Math.floor( docNumber % 2);

? ? ? ? rectItems.push(rem);

? ? ? ? docNumber =? Math.floor( docNumber / 2);

}

while(!rectItems.isEmpty()){

result += rectItems.pop();

}

return result;

}


js 中隊(duì)列和雙端隊(duì)列

隊(duì)列是遵循先進(jìn)先出原則一組有序的項(xiàng)埃撵。隊(duì)列在尾部添加新元素,并從頂部移除元素甥材。最新添加的元素必須排在隊(duì)列的末尾盯另。 現(xiàn)實(shí)生活的例子排隊(duì)
創(chuàng)建一個隊(duì)列,實(shí)現(xiàn)如下方法
enqueue(element(s)) :向隊(duì)列尾部添加一個(或多個)新的項(xiàng)
dequeue(): 移除隊(duì)列的第一項(xiàng)(即排在對)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

peek() 返回隊(duì)列中第一個元素-------最先被添加洲赵,也將是最先被移除的元素鸳惯、

isEmpty() 如果隊(duì)列中不包含任何元素,返回true, 否則返回false

size() 返回隊(duì)列的元素格式叠萍,與數(shù)組的length類似

class Queue {

? ? constructor(){

? ? ? ? this.count = 0;

? ? ? ? this.items = {};

? ? ? ? this.lowecount = 0;

? ? }

? ? enqueue(data){

? ? ? this.items[this.count] = data;

? ? ? this.count ++;

? ? }

? ? dequeue(){

? ? ? ? if(this.isEmpty()){

? ? ? ? ? ? return undefined;

? ? ? ? }

? ? ? ? const rel = this.items[this.lowecount];

? ? ? delete? this.items[this.lowecount];

? ? ? this.lowecount ++;

? ? ? ? return rel;

? ? }

? ? isEmpty(){

? ? ? ? return this.count - this.lowecount === 0;

? ? }

? ? size(){

? ? ? ? ? ? return this.count -? this.lowecount

? ? }

? ? peek(){

? ? ? ? ? if(this.isEmpty()){

? ? ? ? ? ? return undefined;

? ? ? ? }

? ? ? ? return this.item[this.lowecoun] ;

? ? }

}

//傳花游戲

function chuanhua(list , num){

? ? let que = new Queue();

let enen = []

? ? list.forEach( d => {

? ? ? ? que.enqueue(d)

? ? })

? ? ? while(que.size() > 1) {

? ? ? ? for(let i = 0; i< num ; i++){

? ? ? ? ? ? que.enqueue(que.dequeue());

? ? ? }

? ? ? ? ? ? enen.push(que.dequeue())

? ? }

? ? return{

? ? ? ? wineer: que.dequeue(),

? ? enen:enen

? ? }


}

console.log(11, chuanhua([1111,2222,3333,444],2))

雙端隊(duì)列

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芝发,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子苛谷,更是在濱河造成了極大的恐慌辅鲸,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腹殿,死亡現(xiàn)場離奇詭異独悴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)锣尉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門刻炒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人自沧,你說我怎么就攤上這事坟奥。” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵爱谁,是天一觀的道長晒喷。 經(jīng)常有香客問我,道長访敌,這世上最難降的妖魔是什么凉敲? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮寺旺,結(jié)果婚禮上荡陷,老公的妹妹穿的比我還像新娘。我一直安慰自己迅涮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布徽龟。 她就那樣靜靜地躺著叮姑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪据悔。 梳的紋絲不亂的頭發(fā)上传透,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機(jī)與錄音极颓,去河邊找鬼朱盐。 笑死,一個胖子當(dāng)著我的面吹牛菠隆,可吹牛的內(nèi)容都是我干的兵琳。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼骇径,長吁一口氣:“原來是場噩夢啊……” “哼躯肌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起破衔,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤清女,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后晰筛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫡丙,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年读第,在試婚紗的時候發(fā)現(xiàn)自己被綠了曙博。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡卦方,死狀恐怖羊瘩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤尘吗,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布逝她,位于F島的核電站,受9級特大地震影響睬捶,放射性物質(zhì)發(fā)生泄漏黔宛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一擒贸、第九天 我趴在偏房一處隱蔽的房頂上張望臀晃。 院中可真熱鬧,春花似錦介劫、人聲如沸徽惋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽险绘。三九已至,卻和暖如春誉碴,著一層夾襖步出監(jiān)牢的瞬間宦棺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工黔帕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留代咸,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓成黄,卻偏偏與公主長得像呐芥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子奋岁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容