中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      堆的javascript實(shí)現(xiàn)方法

      時(shí)間:2024-10-02 05:38:24 JavaScript 我要投稿
      • 相關(guān)推薦

      堆的javascript實(shí)現(xiàn)方法

        堆的定義

        最大(最。┒咽且豢妹恳粋(gè)節(jié)點(diǎn)的鍵值都不小于(大于)其孩子(如果存在)的鍵值的樹。大頂堆是一棵完全二叉樹,同時(shí)也是一棵最大樹。小頂堆是一棵完全完全二叉樹,同時(shí)也是一棵最小樹。

        另外,記住這兩個(gè)概念,對寫代碼太重要了:

        1、父節(jié)點(diǎn)和子節(jié)點(diǎn)的關(guān)系:看定義

        2、完全二叉樹:參考[2]

        基本操作

        1、Build(構(gòu)建堆)

        2、Insert(插入)

        3、Delete(刪除:最小或者最大的那個(gè))

        代碼實(shí)現(xiàn)

        首先,寫代碼前有兩個(gè)非常重要的點(diǎn):

        1、用一個(gè)數(shù)組就可以作為堆的存儲結(jié)構(gòu),非常簡單而且易操作;

        2、另外同樣因?yàn)槭菙?shù)組作為存儲結(jié)構(gòu),所以父子節(jié)點(diǎn)之間的關(guān)系就能根據(jù)索引就輕松找到對方了。

        對于JavaScript以0作為數(shù)組索引開始,關(guān)系如下:

        nLeftIndex = 2 * (nFatherIndex+1) - 1;nRightIndex = 2* (nFatherIndex+1);

        前面提到注意兩個(gè)概念,是有助于理解的:

        1、因?yàn)槭菙?shù)組,所以父子節(jié)點(diǎn)的關(guān)系就不需要特殊的結(jié)構(gòu)去維護(hù)了,索引之間通過計(jì)算就可以得到,省掉了很多麻煩。如果是鏈表結(jié)構(gòu),就會復(fù)雜很多;

        2、完全二叉樹的概念可以參考[2],要求葉子節(jié)點(diǎn)從左往右填滿,才能開始填充下一層,這就保證了不需要對數(shù)組整體進(jìn)行大片的移動(dòng)。這也是隨機(jī)存儲結(jié)構(gòu)(數(shù)組)的短板:刪除一個(gè)元素之后,整體往前移是比較費(fèi)時(shí)的。這個(gè)特性也導(dǎo)致堆在刪除元素的時(shí)候,要把最后一個(gè)葉子節(jié)點(diǎn)補(bǔ)充到樹根節(jié)點(diǎn)的緣由

        關(guān)于JavaScript的幾點(diǎn)小結(jié)

        這里是采用面向?qū)ο蟮囊环N實(shí)現(xiàn)方法,感覺上不是太優(yōu)雅,不知道還有沒有更好的表示方法和寫法;

        學(xué)習(xí)了數(shù)組的幾個(gè)用法:push和pop的操作太好用了;

        判斷數(shù)組的方式也是臨時(shí)從網(wǎng)上搜的(instanceof),印象不深刻,不用的話下次估計(jì)還是有可能忘掉。

        參考

        [1]《數(shù)據(jù)結(jié)構(gòu)和算法分析:C語言描述》

        [2]圖解數(shù)據(jù)結(jié)構(gòu)(8)——二叉堆

        [3]數(shù)據(jù)結(jié)構(gòu):堆

      【堆的javascript實(shí)現(xiàn)方法】相關(guān)文章:

      JavaScript類定義原型方法的兩種實(shí)現(xiàn)的區(qū)別07-11

      JavaScript實(shí)現(xiàn)網(wǎng)頁刷新代碼段08-07

      JavaScript常用方法匯總10-25

      JavaScript數(shù)組常用方法介紹09-04

      javascript跨域訪問的方法07-09

      javascript編程異常處理的方法08-04

      JavaScript fontcolor方法入門實(shí)例07-07

      使用ajax操作JavaScript對象的方法09-28

      堆漆裝飾的技術(shù)方法06-26

      常用排序算法之JavaScript實(shí)現(xiàn)代碼段06-04

      主站蜘蛛池模板: 久久国产精品超级碰碰热| 天堂AV无码AV毛片毛| 荣成市| 国产日韩三级| 人妻精品久久中文字幕| 久久国产香蕉一区精品天美| 常德市| 国产一区二区三区4区| 精品日韩欧美一区二区三区在线播放 | 99久久综合国产精品免费| 国产三级国产精品三级在专区| 亚洲av影院一区二区三区四区| 精品国产你懂的在线观看| 精品无人区无码乱码大片国产| 满城县| 婷婷国产亚洲性色av网站| 阆中市| 夏津县| 专栏| 日本第一区二区三区视频| 日本一区二区三区在线播放 | 蜜桃一区二区午夜啪啪| 国产精品亚洲综合一区| 国产区二区三区在线观看| 午夜亚洲国产精品福利| 隆化县| 最新国产精品精品视频| 亚洲色图在线视频免费观看| 成年女人18毛片毛片免费| 国产一区中文字幕手机在线| 69av视频在线| 元码人妻精品一区二区三区9| 精品一区二区国产主播| 亚洲国产成a人v在线观看| 中文人妻av大区中文不卡| 黄色网页在线观看一区二区三区| 免费观看在线视频一区| 丝袜美腿丝袜亚洲综合| 国产国拍亚洲精品永久69| 无码AV午夜福利一区| 美女福利一区二区三区在线观看|