如何用JavaScript實現(xiàn)功能齊全的單鏈表詳解-創(chuàng)新互聯(lián)

前言

成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元城固做網(wǎng)站,已為上家服務(wù),為城固各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

前端也要搞好數(shù)據(jù)結(jié)構(gòu)哦!

用JavaScript實現(xiàn)了個單鏈表,通過LinkedList構(gòu)造函數(shù)可實例化一個單鏈表數(shù)據(jù)結(jié)構(gòu)的對象,所有的方法放到LinkedList構(gòu)造函數(shù)的原型對象上,寫了暫時能想到的所有方法

GitHub源碼地址,下載可運行

實現(xiàn)

  • 通過LinkedList的類創(chuàng)建鏈表實例,鏈表下有添加,查找,刪除,顯示節(jié)點等方法
  • 鏈表初始默認有一個"_head"頭部節(jié)點,使用時隱藏
  • 按元素/索引 添加、刪除,未找到時返回錯誤,查找未找到時返回null或-1
  • let obj = new LinkedList()

方法介紹


查找

  • obj.find(item)通過item元素內(nèi)容查找到該元素
  • obj.findIndex(index)通過index索引查找到該元素
  • obj.findIndexOf(item)通過item元素內(nèi)容查找到該元素索引
  • obj.findPrev(item)通過item元素查找上一個節(jié)點元素

添加

  • obj.insert(item,newElement)在item元素后插入新元素
  • obj.push(item)在鏈表末尾插入item元素
  • obj.insertIndex(index,newElement)在index索引處插入新元素

刪除

  • obj.remove(item)刪除item元素
  • obj.removeIndex(index)刪除index索引處節(jié)點

其他

  • obj.size()返回該鏈表的長度
  • obj.display()數(shù)組形式返回該鏈表,便于觀察,測試
  • obj.reversal()鏈表順序反轉(zhuǎn)(遞歸)

方法代碼


鏈表類LinkedList

 function LinkedList (...rest) {
 this._head = new Node('_head') // 鏈表頭節(jié)點
 // 如果new時有傳進值,則添加到實例中
 if (rest.length) {
 this.insert(rest[0], '_head')
 for (let i = 1; i < rest.length; i++) {
 this.insert(rest[i], rest[i - 1])
 }
 }
 }
 LinkedList.prototype.find = find
 LinkedList.prototype.findPrev = findPrev
 LinkedList.prototype.findIndex = findIndex
 LinkedList.prototype.findIndexOf = findIndexOf
 LinkedList.prototype.push = push
 LinkedList.prototype.insert = insert
 LinkedList.prototype.insertIndex = insertIndex
 LinkedList.prototype.remove = remove
 LinkedList.prototype.removeIndex = removeIndex
 LinkedList.prototype.size = size
 LinkedList.prototype.display = display
 LinkedList.prototype.reversal = reversal

網(wǎng)站名稱:如何用JavaScript實現(xiàn)功能齊全的單鏈表詳解-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://bm7419.com/article6/hcoig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、面包屑導(dǎo)航、網(wǎng)站改版、微信公眾號、小程序開發(fā)、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司