最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS基于對象的鏈表實(shí)現(xiàn)與使用方法示例

 更新時(shí)間:2019年01月31日 12:02:14   作者:白楊-M  
這篇文章主要介紹了JS基于對象的鏈表實(shí)現(xiàn)與使用方法,結(jié)合實(shí)例形式分析了鏈表的原理及javascript定義與使用鏈表的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了JS基于對象的鏈表實(shí)現(xiàn)與使用方法。分享給大家供大家參考,具體如下:

鏈表是一種在物理內(nèi)存上不連續(xù)的數(shù)據(jù)結(jié)構(gòu)。原理如下圖所示:

示例代碼:

/*JS實(shí)現(xiàn)一個(gè)基于對象的鏈表*/
function Node(element){
  this.element = element;//節(jié)點(diǎn)存儲(chǔ)的元素
  this.next = null;//節(jié)點(diǎn)指向的下一個(gè)節(jié)點(diǎn),這里先設(shè)置為空
}
function LList(){
  this.head = new Node("head");//生成一個(gè)頭節(jié)點(diǎn)
  this.find = find;//在鏈表中找到某個(gè)節(jié)點(diǎn)
  this.insert = insert;//在鏈表中某個(gè)元素后面插入某個(gè)節(jié)點(diǎn)元素
  this.display = display;//在將鏈表中的節(jié)點(diǎn)元素顯示出來
  this.findPrevious = findPrevious;//找到某個(gè)節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn)
  this.remove = remove;//刪除某個(gè)節(jié)點(diǎn)
}
function remove(item) {
  var prevNode = this.findPrevious(item);
  if (!(prevNode.next == null)) {
    prevNode.next = prevNode.next.next;
  }
}
function findPrevious(item) {
  var currNode = this.head;
  while (!(currNode.next == null) &&
    (currNode.next.element != item)) {
    currNode = currNode.next;
  }
  return currNode;
}
function display() {
  var currNode = this.head;
  var nodestr = "";
  while (!(currNode.next == null)) {
    nodestr +=" "+currNode.next.element;
    currNode = currNode.next;
  }
  console.log(nodestr);
}
function find(item) {
  var currNode = this.head;
  while (currNode.element != item) {
    currNode = currNode.next;
  }
  return currNode;
}
function insert(newElement, item) {
  var newNode = new Node(newElement);
  var current = this.find(item);
  newNode.next = current.next;
  current.next = newNode;
}
/*測試?yán)?/
var num = new LList();
num.insert("a1","head");
num.insert("b1","a1");
num.insert("c1","b1");
num.display();// a1 b1 c1
num.remove("b1");
num.display();// a1 c1

這里使用在線HTML/CSS/JavaScript代碼運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得如下運(yùn)行結(jié)果:

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Ionic如何創(chuàng)建APP項(xiàng)目

    Ionic如何創(chuàng)建APP項(xiàng)目

    這篇文章主要介紹Ionic如何創(chuàng)建APP項(xiàng)目的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • jQuery EasyUI window窗口使用實(shí)例代碼

    jQuery EasyUI window窗口使用實(shí)例代碼

    本文通過實(shí)例代碼給大家介紹了jQuery EasyUI window窗口使用功能,代碼簡單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • js中apply()和call()的區(qū)別與用法實(shí)例分析

    js中apply()和call()的區(qū)別與用法實(shí)例分析

    這篇文章主要介紹了js中apply()和call()的區(qū)別與用法,結(jié)合實(shí)例形式分析了apply()和call()的功能、區(qū)別、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-08-08
  • 構(gòu)建一個(gè)JavaScript插件系統(tǒng)

    構(gòu)建一個(gè)JavaScript插件系統(tǒng)

    這篇文章主要介紹了如何構(gòu)建一個(gè)JavaScript插件系統(tǒng),幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2020-10-10
  • ES6知識(shí)點(diǎn)整理之函數(shù)對象參數(shù)默認(rèn)值及其解構(gòu)應(yīng)用示例

    ES6知識(shí)點(diǎn)整理之函數(shù)對象參數(shù)默認(rèn)值及其解構(gòu)應(yīng)用示例

    這篇文章主要介紹了ES6知識(shí)點(diǎn)整理之函數(shù)對象參數(shù)默認(rèn)值及其解構(gòu)應(yīng)用,結(jié)合實(shí)例形式分析了ES6函數(shù)對象參數(shù)相關(guān)使用技巧,需要的朋友可以參考下
    2019-04-04
  • 關(guān)于div自適應(yīng)高度/左右高度自適應(yīng)一致的js代碼

    關(guān)于div自適應(yīng)高度/左右高度自適應(yīng)一致的js代碼

    在DIV和CSS進(jìn)行網(wǎng)頁布局中,DIV的自適應(yīng)高度和自適應(yīng)寬度是一個(gè)很常見的問題,本文將介紹左右自適應(yīng)高度一致的Jquery與DIV高度自適應(yīng)屏幕的js
    2013-03-03
  • 使用JS中的Replace()方法遇到的問題小結(jié)

    使用JS中的Replace()方法遇到的問題小結(jié)

    這篇文章主要介紹了使用JS中的Replace()方法遇到的問題小結(jié),需要的朋友可以參考下
    2017-10-10
  • javascript中Number的方法小結(jié)

    javascript中Number的方法小結(jié)

    本文介紹javascript中Number的使用方法,并對其進(jìn)行了匯總,希望對大家有所幫助
    2016-11-11
  • JavaScript自定義事件介紹

    JavaScript自定義事件介紹

    很多DOM對象都有原生的事件支持,向div就有click、mouseover等事件,事件機(jī)制可以為類的設(shè)計(jì)帶來很大的靈活性,相信.net程序員深有體會(huì)。隨著web技術(shù)發(fā)展,使用JavaScript自定義對象愈發(fā)頻繁,讓自己創(chuàng)建的對象也有事件機(jī)制,通過事件對外通信,能夠極大提高開發(fā)效率
    2013-08-08
  • JavaScript?ES6模塊導(dǎo)入和導(dǎo)出的方法

    JavaScript?ES6模塊導(dǎo)入和導(dǎo)出的方法

    ES6在語言標(biāo)準(zhǔn)的層面上實(shí)現(xiàn)了模塊功能,而且實(shí)現(xiàn)的相當(dāng)簡單,完全可以取代CommonJS和AMD規(guī)范,成為瀏覽器和服務(wù)器通用的模塊解決方案,下面這篇文章主要給大家介紹了關(guān)于ES6模塊導(dǎo)入和導(dǎo)出的方法,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

鄂托克旗| 乡城县| 连城县| 交城县| 金山区| 澄江县| 武功县| 博野县| 嘉善县| 南通市| 怀柔区| 临海市| 林甸县| 遂川县| 缙云县| 科技| 兴海县| 毕节市| 宝丰县| 蚌埠市| 凤山市| 江北区| 马公市| 四会市| 浙江省| 南华县| 凤城市| 文水县| 定安县| 元江| 瑞昌市| 喀什市| 诸暨市| 得荣县| 贡山| 长沙县| 和龙市| 龙陵县| 高尔夫| 巩义市| 陆良县|