亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Node.js環境下JavaScript實現單鏈表與雙鏈表結構

2019-11-20 09:43:36
字體:
來源:轉載
供稿:網友

單鏈表(LinkedList)的javascript實現
npmjs相關庫:
complex-list、smart-list、singly-linked-list
編程思路:

  • add方法用于將元素追加到鏈表尾部,借由insert方法來實現;
  • 注意各個函數的邊界條件處理。

自己的實現:

SingleNode.js

(function(){ "use strict"; function Node(element){  this.element = element;  this.next = null; } module.exports = Node;})();

LinkedList.js

(function(){ "use strict"; var Node = require("./lib/SingleNode"); function LinkedList(){  this._head = new Node("This is Head Node.");  this._size = 0; } LinkedList.prototype.isEmpty = function(){  return this._size === 0; }; LinkedList.prototype.size = function(){  return this._size; }; LinkedList.prototype.getHead = function(){  return this._head; }; LinkedList.prototype.display = function(){  var currNode = this.getHead().next;  while(currNode){   console.log(currNode.element);   currNode = currNode.next;  } }; LinkedList.prototype.remove = function(item){  if(item) {   var preNode = this.findPre(item);   if(preNode == null)    return ;   if (preNode.next !== null) {    preNode.next = preNode.next.next;    this._size--;   }  } }; LinkedList.prototype.add = function(item){  this.insert(item); }; LinkedList.prototype.insert = function(newElement, item){  var newNode = new Node(newElement);  var finder = item ? this.find(item) : null;  if(!finder){   var last = this.findLast();   last.next = newNode;  }  else{   newNode.next = finder.next;   finder.next = newNode;  }  this._size++; }; /*********************** Utility Functions ********************************/ LinkedList.prototype.findLast = function(){  var currNode = this.getHead();  while(currNode.next){   currNode = currNode.next;  }  return currNode; }; LinkedList.prototype.findPre = function(item){  var currNode = this.getHead();  while(currNode.next !== null && currNode.next.element !== item){   currNode = currNode.next;  }  return currNode; }; LinkedList.prototype.find = function(item){  if(item == null)   return null;  var currNode = this.getHead();  while(currNode && currNode.element !== item){   currNode = currNode.next;  }  return currNode; }; module.exports = LinkedList;})();


雙鏈表(DoubleLinkedList)的javascript實現
npmjs相關庫:
complex-list、smart-list
編程思路:

  • 雙鏈表多了一個指向前趨的指針,故單鏈表中的輔助函數findPre就不需要了;
  • 增加了反向輸出方法;
  • 注意邊界條件的處理。

自己的實現
DoubleNode.js

(function(){ "use strict"; function Node(element){  this.element = element;  this.next = null;  this.previous = null; } module.exports = Node;})();

DoubleLinkedList.js

(function(){ "use strict"; var Node = require("./lib/DoubleNode"); function DoubleLinkedList(){  this._head = new Node("This is Head Node.");  this._size = 0; } DoubleLinkedList.prototype.getHead = function(){  return this._head; }; DoubleLinkedList.prototype.isEmpty = function(){  return this._size === 0; }; DoubleLinkedList.prototype.size = function(){  return this._size; }; DoubleLinkedList.prototype.findLast = function(){  var currNode = this.getHead();  while(currNode.next){   currNode = currNode.next;  }  return currNode; }; DoubleLinkedList.prototype.add = function(item){  if(item == null)   return null;  this.insert(item); }; DoubleLinkedList.prototype.remove = function(item){  if(item) {   var node = this.find(item);   if(node == null)    return ;   if (node.next === null) {    node.previous.next = null;    node.previous = null;   } else{    node.previous.next = node.next;    node.next.previous = node.previous;    node.next = null;    node.previous = null;   }   this._size--;  } }; DoubleLinkedList.prototype.find = function(item){  if(item == null)   return null;  var currNode = this.getHead();  while(currNode && currNode.element !== item){   currNode = currNode.next;  }  return currNode; }; DoubleLinkedList.prototype.insert = function(newElement, item){  var newNode = new Node(newElement);  var finder = item ? this.find(item) : null;  if(!finder){   var last = this.findLast();   newNode.previous = last;   last.next = newNode;  }  else{   newNode.next = finder.next;   newNode.previous = finder;   finder.next.previous = newNode;   finder.next = newNode;  }  this._size++; }; DoubleLinkedList.prototype.dispReverse = function(){  var currNode = this.findLast();  while(currNode != this.getHead()){   console.log(currNode.element);   currNode = currNode.previous;  } }; DoubleLinkedList.prototype.display = function(){  var currNode = this.getHead().next;  while(currNode){   console.log(currNode.element);   currNode = currNode.next;  } }; module.exports = DoubleLinkedList;})();
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线a欧美视频| 成人做爽爽免费视频| 国产精品第2页| 国产成人激情视频| 成人免费观看a| 久久国产精品影视| 欧美激情按摩在线| 中文字幕欧美精品日韩中文字幕| 在线观看中文字幕亚洲| 91色视频在线观看| 精品高清一区二区三区| 国产成人精品久久久| 日韩av在线影视| 亚洲国产中文字幕久久网| 成人国产精品久久久| 久久久精品视频在线观看| 久久成人精品电影| 国产亚洲精品久久久久久| 欧美一级片久久久久久久| 午夜精品视频网站| 国产精品极品美女粉嫩高清在线| 91伊人影院在线播放| 亚洲a在线观看| 欧美激情手机在线视频| 久久精品最新地址| 国产精品一区二区三区免费视频| 97国产精品久久| 午夜精品久久久久久久男人的天堂| 国产日韩精品入口| 伊人久久综合97精品| 国产在线视频不卡| 亚洲欧美日韩久久久久久| 久久av在线播放| 国产美女精品视频免费观看| 成人免费网站在线看| 久久成人亚洲精品| 欧美精品激情blacked18| 欧美小视频在线观看| 午夜剧场成人观在线视频免费观看| 91亚洲va在线va天堂va国| 欧美电影免费观看电视剧大全| 国产欧洲精品视频| 亚洲天堂男人天堂女人天堂| 久久伊人精品天天| 日韩高清免费观看| 国内精品久久久久伊人av| 欧美日韩在线观看视频| 欧美有码在线观看视频| 911国产网站尤物在线观看| 4k岛国日韩精品**专区| 夜夜嗨av色一区二区不卡| 欧美大片va欧美在线播放| 亚洲精品美女久久| 久久久91精品国产一区不卡| 亚洲精品不卡在线| 成人乱色短篇合集| 成人中文字幕在线观看| 97香蕉超级碰碰久久免费的优势| 亚洲视频电影图片偷拍一区| 两个人的视频www国产精品| 热久久免费视频精品| 国产主播精品在线| 91亚洲人电影| 成人www视频在线观看| 色无极影院亚洲| 久久久久久久国产精品| 国产91精品在线播放| 欧美精品videosex极品1| 91精品国产91久久久久久| 久久久久久这里只有精品| 国产视频综合在线| 久久久久久久久91| 国产欧美日韩免费看aⅴ视频| 欧美影院成年免费版| 欧美一区三区三区高中清蜜桃| 国a精品视频大全| 色噜噜狠狠狠综合曰曰曰88av| 亚洲色图第三页| 国产一区二区美女视频| 91亚洲国产成人久久精品网站| 91国偷自产一区二区三区的观看方式| 亚洲福利视频免费观看| 国产欧美一区二区三区久久| 性欧美xxxx视频在线观看| 一区三区二区视频| 久久久久久久久久久91| 中文字幕久久精品| 国产精品igao视频| 国内成人精品一区| 亚洲精品国精品久久99热一| 日韩电影第一页| 成人深夜直播免费观看| 91久久精品国产91久久性色| 97免费中文视频在线观看| 成人av在线天堂| 国产一区二区在线免费| 国产精品免费一区| 亚洲电影免费观看高清| 97avcom| 亚洲bt欧美bt日本bt| 九九视频直播综合网| 欧美日韩亚洲91| 日本久久久久久久久久久| 久久久久久久久久婷婷| 国产91ⅴ在线精品免费观看| 国产欧美韩国高清| 欧美午夜性色大片在线观看| 国产精品视频大全| 久久久久久国产精品美女| 日韩av电影手机在线| 亚洲一区二区三区在线免费观看| 激情久久av一区av二区av三区| 成人免费观看网址| 国产精品福利在线观看网址| 国产精品h片在线播放| 精品呦交小u女在线| 51精品国产黑色丝袜高跟鞋| 亚洲精品久久久久久久久久久| 久久久久国产一区二区三区| 欧美午夜丰满在线18影院| 日韩经典第一页| 亚洲精品98久久久久久中文字幕| 国产精品自拍视频| 亚洲娇小xxxx欧美娇小| 成人自拍性视频| 日韩视频中文字幕| 福利视频第一区| 日韩欧美精品中文字幕| 91精品国产91久久久久久吃药| 国产69精品久久久久9999| 国语自产精品视频在线看| 国产精品中文字幕久久久| 成人免费看片视频| 亚洲va欧美va国产综合久久| 亚洲精品国产精品自产a区红杏吧| 国产精品自拍小视频| 久久青草福利网站| 国产精品美乳在线观看| 欧美有码在线观看视频| 色综合老司机第九色激情| 大荫蒂欧美视频另类xxxx| 欧美高清不卡在线| 欧美日韩福利视频| 国产精品日韩av| 日韩精品在线观| www.久久久久| 久久国产精品久久国产精品| 欧美精品在线观看91| 国产精品久久久久久久久男| 亚洲精品久久视频| 一区二区三区四区视频| 日韩欧美亚洲一二三区| 欧美日本啪啪无遮挡网站| 亚洲xxxx妇黄裸体| 欧美日韩中国免费专区在线看| 亚洲视频在线看| 久久天天躁狠狠躁夜夜躁2014| 美女视频黄免费的亚洲男人天堂| 亚洲男人天堂手机在线| 日韩精品中文字幕久久臀| 亚洲最大成人网色| 亚洲精品丝袜日韩| 日韩精品在线免费| 欧美一区在线直播|