JavaScript单链表 骑猪看日落 2022-06-01 23:51 174阅读 0赞 function Linkedlist(){ var Node = function(element){ this.element = element; this.next = null; }; var length = 0; var head = null; this.append = function(element){ var node = new Node(element), current; if(head ===null){ head = node; }else{ current = head; while(current.next){ current = current.next; } current.next = node; } length++; }; this.insert = function(position,element){ //检查越界 if( position >=0 && position <= length){ var node = new Node(element), current = head, previous, index = 0; if(position === 0){ node.next = current; head = node; }else{ while(index++ < position){ previous = current; current = current.next; } node.next = current; previous.next = node; } length++; return true; }else{ return false; } }; this.removeAt = function(position){ //检查越界值 if(position>-1 && position <length){ var current = head, //对列表当前元素的引用 previous, //对当前元素的前一个元素的引用 index=0; //用于内部控制和递增 //移除第一项,让head指向第二个元素 if(position === 0){ head = current.next; }else{ while(index++ < position){ previous = current; current = current.next; } //将previous与current的下一项连接起来;跳过current,从而移除它 previous.next = current.next; } length--; return current.element; }else{ return null; } }; this.remove = function(element){ var index = this.indexOf(element); return this.removeAt(index); }; this.indexOf = function(element){ var current = head, index = 0; while(current){ if(element === current.element){ return index; } index++; current = current.next; } return -1; }; this.isEmpty = function(){ return length ===0; }; this.size = function(){ return length; }; this.toString = function(){ var current = head, string = ''; //用于拼接元素值 while(current){ //循环访问列表中的每个元素 string += current.element; current = current.next; } return string; }; this.print = function(){ console.log(list.toString()); }; this.getHead = function(){ return head; } } var list = new Linkedlist(); list.append(1); list.append(2); list.append(3); list.insert(1,'我是插入的元素'); list.removeAt(2); console.log(list.indexOf(1)); list.remove(2); console.log(list.getHead()); list.print(); 根据书上的代码改了两个地方: 1)字符串输出toString(),要使链表从头到尾每个元素输出,应该用+=: string += current.element; 2)indexOf()位置应该是从0开始: index = 0;
相关 【链表】单链表、双向循环链表 文章目录 前言 一:链表(LinkedList) 1.1 链表分类 1.2 介绍 1.3 链表的概念及结构 二: 骑猪看日落/ 2024年03月24日 18:19/ 0 赞/ 104 阅读
相关 单链表 回顾 在 [线性表][Link 1] 中,介绍了线性表定义、顺序存储结构以及链式存储结构这两种存储结构。 先回顾下线性表的链式存储结构的一些内容: 1. 链表是线性 末蓝、/ 2023年10月05日 19:06/ 0 赞/ 28 阅读
相关 单链表 一图在手,万题无忧。数学题是这样,算法题也是这样。 typedef struct Node { DataType data; struc 雨点打透心脏的1/2处/ 2023年03月14日 13:12/ 0 赞/ 53 阅读
相关 单链表 学习单链表已经有一段日子了,从大二到现在,也有不少年,最近准备实习生招聘,要开始复习并记录一些重要知识。 一、链表逆置 链表逆置,一直是我记不住的一个内容,如果要逆置一 不念不忘少年蓝@/ 2022年07月12日 00:25/ 0 赞/ 218 阅读
相关 JavaScript单链表 function Linkedlist(){ var Node = function(element){ 骑猪看日落/ 2022年06月01日 23:51/ 0 赞/ 175 阅读
相关 【数据结构】JavaScript实现单链表、单链表反转 链表 链接也是一种存储数据的工具,不同于数组,链表中的元素并不是连续存储的。因此不能通过下标去访问。 链表分为单(向)链表,双向链表,循环链表等。.今天来实现一下单链表。 待我称王封你为后i/ 2022年05月16日 02:23/ 0 赞/ 280 阅读
相关 线性链表 — 单链表 线性链表存储结构的特点:用一组任意的存储单元存储线性表的数据元素(存储单元可以是连续的,也可以是不连续的) 数据元素a与其直接后继a+1之间的逻辑关系,对数据元素a来说,除了 墨蓝/ 2022年04月16日 03:40/ 0 赞/ 411 阅读
相关 单链表 / @author huihut @E-mail:huihut@outlook.com @version 创建时间:2016年9月18日 偏执的太偏执、/ 2021年12月18日 05:09/ 0 赞/ 380 阅读
相关 (四)线性表 ---→ 链表 ---→ 单链表 文章目录 概念 特点 复杂度 \`java\` 代码实现 -------------------- 概念 女爷i/ 2021年12月10日 04:05/ 0 赞/ 376 阅读
相关 单链表 【一】单链表特点 > 1.存储方式为:节点,节点包含data域和next域,data域用于存储数据,next域用于存储下一个节点对应的地址。 > 2.链表的各个节点不一定 叁歲伎倆/ 2021年08月11日 21:03/ 0 赞/ 538 阅读
还没有评论,来说两句吧...