全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

使用JavaScript实现链表的数据结构的代码

链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)   — 维基百科

上面是维基百科对 链表 的解读。下面我们用 JavaScript 代码对链表的数据结构进行实现

实现Node类表示节点

/**
 * Node 类用来表示节点
 * element 用来保存节点上的数据
 * next 用来保存指向下一个节点的链接
 */
function Node(element) {
 this.element = element;
 this.next = null;
}
LList类提供对链表操作的方法
/**
 * LList 类提供了对链表进行操作的方法
 * 链表只有一个属性,
 * 使用一个 Node 对象来保存该链表的头节点。
 */
class LList {
 constructor() {
  this.head = new Node('head');
 }
 // 查找节点
 find(item) {
  let currNode = this.head;
  while(currNode.element !== item) {
   currNode = currNode.next;
  }
  return currNode;
 }
 // 查找前一个节点
 findPre(item) {
  if(item === 'head') throw new Error('now is head!');
  let currNode = this.head;
  while (currNode.next && currNode.next.element !== item) {
   currNode = currNode.next;
  }
  return currNode;
 }
 // 插入新节点
 insert(newElement, item) {
  let newNode = new Node(newElement);
  let currNode = this.find(item);
  newNode.next = currNode.next;
  currNode.next = newNode;
 }
 // 删除一个节点
 remove(item) {
  let preNode = this.findPre(item);
  if(preNode.next !== null) {
   preNode.next = preNode.next.next;
  }
 }
 // 显示链表中的元素
 display() {
  let currNode = this.head;
  while(currNode.next !== null) {
   console.log(currNode.next.element);
   currNode = currNode.next;
  }
 }
}

测试代码

const list = new LList(); 
// LList { head: Node { element: 'head', next: null } }
list.insert('0', 'head');
list.insert('1', '0');
list.insert('2', '1');
list.insert('3', '2');
list.remove('1');
console.log(list); 
// LList { head: Node { element: 'head', next: Node { element: '0', next: [Object] } } }
console.log(list.display()); // 0 2 3
console.log(list.findPre('1')); 
// Node { element: '0', next: Node { element: '1', next: Node { element: '2', next: [Object] } } }

上面就是用JavaScript对简单链表的数据结构的简单实现:smile:

总结

以上所述是小编给大家介绍的使用JavaScript实现链表的数据结构的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# js  # 链表数据结构  # JavaScript数据结构之双向链表  # JavaScript数据结构之双向链表和双向循环链表的实现  # JavaScript数据结构之单链表和循环链表  # JavaScript数据结构之双向链表定义与使用方法示例  # JavaScript数据结构之链表的实现  # JavaScript数据结构链表知识详解  # JavaScript数据结构与算法之链表  # JavaScript实现的链表数据结构实例  # JavaScript数据结构之链表各种操作详解  # 链表  # 数据结构  # 是一种  # 小编  # 维基百科  # 在此  # 给大家  # 只有一个  # 所述  # 给我留言  # 感谢大家  # 疑问请  # 有任何  # 线性表  # 在每一个  # brush  # class  # pre  # element 


相关文章: 如何制作网站标识牌,动态网站如何制作(教程)?  高防服务器:AI智能防御DDoS攻击与数据安全保障  导航网站建站方案与优化指南:一站式高效搭建技巧解析  如何高效生成建站之星成品网站源码?  高防服务器租用如何选择配置与防御等级?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  山东云建站价格为何差异显著?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  建站之星上传入口如何快速找到?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  如何在云服务器上快速搭建个人网站?  如何选择适合PHP云建站的开源框架?  视频网站制作教程,怎么样制作优酷网的小视频?  专业公司网站制作公司,用什么语言做企业网站比较好?  建站DNS解析失败?如何正确配置域名服务器?  怀化网站制作公司,怀化新生儿上户网上办理流程?  建站之星安装路径如何正确选择及配置?  建站之星安装需要哪些步骤及注意事项?  如何安全更换建站之星模板并保留数据?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  如何快速搭建高效可靠的建站解决方案?  如何在IIS中配置站点IP、端口及主机头?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  如何用PHP快速搭建高效网站?分步指南  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  制作网站公司那家好,网络公司是做什么的?  如何在阿里云高效完成企业建站全流程?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  宿州网站制作公司兴策,安徽省低保查询网站?  如何通过西部建站助手安装IIS服务器?  如何快速搭建虚拟主机网站?新手必看指南  如何配置支付宝与微信支付功能?  建站之星如何助力网站排名飙升?揭秘高效技巧  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  ,巨量百应是干嘛的?  长沙做网站要多少钱,长沙国安网络怎么样?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  如何通过西部数码建站助手快速创建专业网站?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  定制建站模板如何实现SEO优化与智能系统配置?18字教程  如何撰写建站申请书?关键要点有哪些?  实例解析Array和String方法  ,怎么在广州志愿者网站注册?  为什么Go需要go mod文件_Go go mod文件作用说明  网站按钮制作软件,如何实现网页中按钮的自动点击?  如何快速完成中国万网建站详细流程? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。