真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

野生前端的數(shù)據(jù)結構基礎練習(3)——鏈表-創(chuàng)新互聯(lián)

野生前端的數(shù)據(jù)結構基礎練習(3)——鏈表

創(chuàng)新互聯(lián)是一家專業(yè)提供克井企業(yè)網(wǎng)站建設,專注與做網(wǎng)站、網(wǎng)站建設、H5建站、小程序制作等業(yè)務。10年已為克井眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

網(wǎng)上的相關教程非常多,基礎知識自行搜索即可。

習題主要選自Orelly出版的《數(shù)據(jù)結構與算法javascript描述》一書。

參考代碼可見:https://github.com/dashnowords/blogs/tree/master/Structure/List

鏈表的基本知識

  • 特點:

    鏈表由節(jié)點組成,每個節(jié)點增加一個對象的引用指向它的后繼節(jié)點。鏈表也就是將一個線性表轉換為一個存儲空間上不連續(xù),而在抽象層面可連續(xù)訪問的表。

  • 用途:

    更快的插入和刪除,因為只需要操作插入刪除位置相鄰元素即可,如果在線性表中,操作中間位置的元素后,后續(xù)的元素位置都需要調整。javascript中的應用例如原型鏈。

  • 基本屬性

    • element當前節(jié)點的值
    • next下一個節(jié)點
  • 基本方法

    • insert(item, newitem)在item后面插入一個新元素newitem

    插入一個元素,需要將item元素節(jié)點的next指向新元素,新元素的next指向item元素的后繼元素。

    • remove(pos)從隊頭刪除一個元素

    刪除一個節(jié)點時,需要將其前驅節(jié)點的next指向其后繼節(jié)點即可。

    • find(element)查詢值為element的節(jié)點位置

    • findpre(element)查詢值為element的節(jié)點的前一個節(jié)點

    • display()顯示整個鏈表

基本練習

  1. 根據(jù)鏈表的基本特性實現(xiàn)一個LinkedList類,并在后續(xù)題目中需要用鏈表時使用它。

    【注意點】:刪除指定元素時,由于需要修改指定元素前一個節(jié)點的next指針,所以當所查找的節(jié)點存在時,搜索方法應當返回其前一個節(jié)點以供后續(xù)步驟使用。

  2. 實現(xiàn)一個雙向鏈表TwoWayLinkedList類。

    【注意點】:每一個實例會記錄前驅節(jié)點和后繼節(jié)點,雙向鏈表比單鏈表增加了反向遍歷的能力,并且由于所查找節(jié)點的屬性中包含了前驅和后繼節(jié)點的信息,故插入節(jié)點和刪除節(jié)點時使用同一個搜索方法即可。

  3. LinkedList類為參考基準,實現(xiàn)一個循環(huán)鏈表CircularLinkedList類。

    【注意點】:循環(huán)鏈表的特點是尾節(jié)點的next指針指向了頭節(jié)點。

課后習題(書中第六節(jié)習題)

  1. 實現(xiàn)Advance(n)方法,使節(jié)點向前移動n個節(jié)點。
  2. 實現(xiàn)back(n)方法,使節(jié)點向后移動n個節(jié)點。
  3. 實現(xiàn)show()方法,只顯示當前節(jié)點上的數(shù)據(jù)。
  4. (略)
  5. (略)
  6. 傳說在公元1世紀猶太戰(zhàn)爭中,猶太歷史學家弗拉維奧·約瑟夫斯和他的40個同胞被羅馬士兵包圍,猶太士兵決定寧可自殺也不做俘虜,于是商量出一個自殺方案。他們圍成一個圈,從一個人開始,數(shù)到第三個人事將第三個人殺死,然后再數(shù),直到殺光所有人,約瑟夫和另一個人決定不參加這個瘋狂的游戲,他們快速地計算出兩個位置,站在那里得以幸存。寫一段將n個人圍成一圈,并且第m個人會被殺掉,計算一圈中哪兩個人最后會存貨,使用循環(huán)鏈表解決該問題。

習題思路

  1. 向前移動n個位置,在位置驗證合法時相當于,從原位置刪除一個節(jié)點,在新位置插入一個節(jié)點,為操作方便直接使用雙向鏈表來實現(xiàn)即可?!咀⒁恻c】:示例代碼中直接以放入鏈表的值為依據(jù)進行節(jié)點查找,故不支持重復數(shù)據(jù),可為節(jié)點增加index屬性來區(qū)分相同數(shù)據(jù)。
    野生前端的數(shù)據(jù)結構基礎練習(3)——鏈表

  2. 與上一題同理。

  3. 很好實現(xiàn)。

  4. 使用一個單鏈表來存儲輸入的成績即可,當最后一個成績節(jié)點的指針指向null即可。

  5. 用值為1-40的元素循環(huán)鏈表來刪除節(jié)點直到總節(jié)點數(shù)目只剩2個為止。為了方便統(tǒng)計剩余元素的數(shù)量,為鏈表增加一個count屬性來記錄元素個數(shù)。
    野生前端的數(shù)據(jù)結構基礎練習(3)——鏈表

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。


分享文章:野生前端的數(shù)據(jù)結構基礎練習(3)——鏈表-創(chuàng)新互聯(lián)
瀏覽地址:http://weahome.cn/article/cciess.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部