js 链表的创建以及增删改查操作
/*======定义结构======*/ var node=function(element){ this.element=element this.next=null } var linkedList=function(){ this.head=new node("head") this.find=find this.insert=insert this.update=update this.remove=remove } /*======查找======*/ var find=function(item){ let currNode=this.head while(currNode.element!==item){ currNode=currNode.next } return currNode } /*======插入======*/ /** *newElement:一个新节点,item:链表的目标节点 *1.查找找到目标节点,将新节点的next指向目标节点的下一个节点 *2.将目标节点的next指向这个新节点 */ var insert=function(newElement,item){ let newNode=new node(newElement) let currNode=this.find(item) newNode.next=currNode.next currNode.next=newNode } /*======修改======*/ /** *查找到目标节点,将其element修改 */ var update=function(item,newItem){ let currNode=this.find(item) currNode.element=newItem } /*======删除======*/ /** *找到匹配节点的前一个节点,将其next指向当前节点的下一个节点,即删除当前节点 */ var remove=function(item){ let currNode=this.head while(currNode.next!==null && currNode.next.element!==item){ currNode=currNode.next } if(currNode.next!==null){ currNode.next=currNode.next.next } } /*======测试代码======*/ var list=new linkedList(); list.insert('first','head') list.insert('second','first') list.insert('third','second') console.log(list) list.find('first') console.log(list.find('first')) list.update('third','three') console.log(list) list.remove('second') console.log(list)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步