使用JavaScript实现链表的数据结构的代码
程序员文章站
2022-11-25 09:10:59
链表(linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(pointer) &...
链表(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实现链表的数据结构的代码,希望对大家有所帮助