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

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

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

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

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

示例代碼:

/*JS實現(xiàn)一個基于對象的鏈表*/
function Node(element){
  this.element = element;//節(jié)點存儲的元素
  this.next = null;//節(jié)點指向的下一個節(jié)點,這里先設置為空
}
function LList(){
  this.head = new Node("head");//生成一個頭節(jié)點
  this.find = find;//在鏈表中找到某個節(jié)點
  this.insert = insert;//在鏈表中某個元素后面插入某個節(jié)點元素
  this.display = display;//在將鏈表中的節(jié)點元素顯示出來
  this.findPrevious = findPrevious;//找到某個節(jié)點的上一個節(jié)點
  this.remove = remove;//刪除某個節(jié)點
}
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;
}
/*測試例子*/
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代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得如下運行結果:

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

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

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

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

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

    jQuery EasyUI window窗口使用實例代碼

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

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

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

    構建一個JavaScript插件系統(tǒng)

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

    ES6知識點整理之函數(shù)對象參數(shù)默認值及其解構應用示例

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

    關于div自適應高度/左右高度自適應一致的js代碼

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

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

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

    javascript中Number的方法小結

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

    JavaScript自定義事件介紹

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

    JavaScript?ES6模塊導入和導出的方法

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

最新評論

德江县| 张掖市| 徐水县| 舞钢市| 瑞丽市| 且末县| 阿巴嘎旗| 新民市| 内乡县| 宝坻区| 安丘市| 新密市| 临泽县| 安顺市| 萝北县| 和顺县| 淮阳县| 章丘市| 开远市| 苏尼特左旗| 静安区| 陇川县| 桑植县| 景洪市| 芮城县| 临夏县| 垣曲县| 石嘴山市| 肃南| 潍坊市| 和静县| 安岳县| 临清市| 兴和县| 乐昌市| 离岛区| 张家港市| 西藏| 方山县| 怀柔区| 渭源县|