实现一个单向、双向、循环链表?
你可以用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