实现一个单向、双向、循环链表?

你可以用js去实现一个单向、双向、循环链表吗?你可以实现查找、插入、删除操作吗?

可以在这里试一下:[在线编程环境][48]

链表:

插入链表节点:

删除链表节点:

双向链表:

循环链表:

下面给一个最简单的单项链表示例:

/**
** 先创建一个节点类,记录当前数据,和下个节点,如果是双向链表,就包含prev
**prev: 对上个节点的引用
** next: 对下个节点的应用
**/
class Node{
  constructor(data){
    this.data = data;
    this.next = null;
  }
}
/**
**创建链表,head是链表中的一个起始节点,关于单项链表,双向链表和循环链表参考文章介绍
** find: 找到数据所在的节点,这里是示例,其实应该有个唯一标识
**insert: 在指定节点后面插入节点
**/
class LinkTable{
  constructor(data){
    this.head = null;
    this.end = null;
    if(data){
      this.head = new Node(data)
    }
  }
  find(data){
    let start = this.head;
    while(start.data != data){
      start = start.next;
    }
    return start;
  }
  // 倒序插入节点
  insert(data){
    let nod = new Node(data);
    nod.next = this.head
    this.head = nod;
  }
}

参考这里:https://dev.to/aspittel/thank-u-next-an-introduction-to-linked-lists-4pph



请遵守《互联网环境法规》文明发言,欢迎讨论问题
扫码反馈

扫一扫,反馈当前页面

咨询反馈
扫码关注
返回顶部