欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript 链表定义与使用方法示例

程序员文章站 2022-09-24 15:12:15
本文实例讲述了javascript 链表定义与使用方法。分享给大家供大家参考,具体如下:链表一个 链表 是数据元素的线性集合, 元素的线性顺序不是由它们在内存中的物理位置给出的。 相反, 每个元素指向...

本文实例讲述了javascript 链表定义与使用方法。分享给大家供大家参考,具体如下:

链表

一个 链表 是数据元素的线性集合, 元素的线性顺序不是由它们在内存中的物理位置给出的。 相反, 每个元素指向下一个元素。它是由一组节点组成的数据结构,这些节点一起,表示序列。

链表的一个缺点是访问时间是线性的(而且难以管道化)。

class node {
 constructor(val) {
  this.val = val;
  this.next = null;
 }
}

显示链表

function display () {
  var currnode = this.head;
  while ( !(currnode.next == null) ){
    console.log( currnode.next.element );
    currnode = currnode.next;
  }
}

查找

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 currnode = this.find( item );
  newnode.next = currnode.next;
  currnode.next = newnode;
}

删除

function findprev( item ) {
  var currnode = this.head;
  while ( !( currnode.next == null) && ( currnode.next.element != item )){
    currnode = currnode.next;
  }
  return currnode;
}

function remove ( item ) {
  var prevnode = this.findprev( item );
  if( !( prevnode.next == null ) ){
    prevnode.next = prevnode.next.next;
  }
}

感兴趣的朋友可以使用在线html/css/javascript代码运行工具http://tools.jb51.net/code/htmljsrun测试上述代码运行效果。