使用js实现链表数据结构(增 删 该 查 打印)

Posted 格格123456

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用js实现链表数据结构(增 删 该 查 打印)相关的知识,希望对你有一定的参考价值。

//使用js实现链表:

<script>
function Node(element){
this.element = element;//当前节点数据
this.next = null;//下一个节点
}

function LinkedList(){
this.head = new Node("head");
}
LinkedList.prototype = {
//查找某一节点
find:function(item){
var currNode = this.head;
while(currNode.next != null && currNode.element != item){
currNode = currNode.next;
}
return currNode;
},
//向某一元素后面插入新节点
insert:function(newElement,item){
var newNode = new Node(newElement);
var current = this.find(item);
newNode.next = current.next;
current.next = newNode;
},
//查找某一节点的前一个节点
findPrevious:function(item){
var currNode = this.head;
while(currNode.next != null&&currNode.next.element != item){
currNode = currNode.next;
}
return currNode;
},
//删除某一节点
remove:function(item){
var prevNode = this.findPrevious(item);
if(!(prevNode.next == null)){
prevNode.next = prevNode.next.next;
}
},
//修改某一节点的数据
edit:function(item,newItem){
var node = this.find(item);
node.element = newItem;
},
//在控制台打印出所有节点
display:function(){
var currNode = this.head;
console.log(currNode.element)
while(currNode.next != null){
console.log(currNode.next.element);
currNode = currNode.next;
}
},
//判断单项链表是否有循环
//设置两个指针互相追逐。一个指针每次前进一步,第二个指针每次前进两步,如果有相遇,则说明有环。
hasCircle() {
var slowPointer = this.head;
var fastPointer = this.head;
while(fastPointer != null){
slowPointer = slowPointer.next;
fastPointer = fastPointer.next.next;
if(slowPointer == fastPointer){
return true;

以上是关于使用js实现链表数据结构(增 删 该 查 打印)的主要内容,如果未能解决你的问题,请参考以下文章

数据结构C语言版 —— 链表增删改查实现(单链表+循环双向链表)

Javascript模仿C语言的链表实现(增删改查),并且使用控制台输入输出

双向循环链表增删查改C语言实现

数据库: PHP使用PDO连接数据库实现增 删 改 查 操作

算法与数据结构单链表的增删改查逆序打印与输出合并有序链表

数据结构c语言篇 《二》链表概述,增删改查等多功能实现及相关面试题(上)