class LinkedList constructor: -> # 首节点 @_head = null # 添加节点 add: (data) -> # 创建新节点 node = data: data, next:null # 如果首节点为空, 则进行赋值; 否则设置遍历的起点为首节点 current = @_head or = node # 判断是否只有一个节点 if @_head isnt node # 遍历至最后一个节点 current = current.next while current.next # 添加新节点至队列尾部 current.next = node # 返回队列 this # 查找节点 item: (index) -> # 负数处理 return null if index < 0 # 第一个节点 current = @_head or null i = -1 # 遍历, 直至节点不会空且序号为index current = current.next while current and index > ++i # 返回节点的data值 current and current.data # 删除节点 remove: (index) -> # 负数处理 return null if index < 0 current = @_head or null i = -1 # 当序号为0时 if index is 0 # 则将首节点的下一个节点提升为子节点 @_head = current.next else # 序号>0时, 遍历获取目标节点以及其上一个节点 [previous, current] = [current, current.next] while index > ++i # 将目标节点的上下级节点关联, 从而达到删除目标节点的效果 previous.next = current.next # 返回被删除的目标节点的data值 current and current.data # 计算队列大小 size: -> current = @_head count = 0 while current count += 1 current = current.next count # 转化为Array toArray: -> result = [] current = @_head while current result.push current.data current = current.next result # 转化为字符串 toString: -> @toArray().toString()
相关推荐
模拟实现 LinkedList 测试类
链表类LinkedList的完全c++实现,根据数据结构与算法课堂总结。
在JavaScript中实现LinkedList,我们需要理解其基本概念、操作以及如何用原生JavaScript对象来模拟链表结构。 首先,LinkedList由一系列节点(Node)组成,每个节点包含两部分:数据和指向下一个节点的引用。在...
在这个“LinkedList的实现.zip”文件中,我们有三个头文件——Link.h、List.h和LinkedList,它们共同构成了LinkedList的数据结构及其操作的实现。 首先,`Link.h`通常会定义单链表中的节点结构。节点结构可能包括一...
C语言实现LinkedList
实现一个链表LinkedList,要求使用链表机构实现,并提供相应的add(Object o),remove(Object o)这两个方法.
在深入分析JDK 7.0中LinkedList集合的底层实现原理前,我们首先需要了解LinkedList的基本概念。LinkedList,即双向链表,是一种通过双向指针相互连接的数据结构,每个节点包含数据域以及指向前驱和后继节点的指针。...
自定义实现的ArrayList数据结构,有大量注释以及编写思路,帮助新手用Java语言来实现数据结构
本文将详细讲解如何使用Java中的LinkedList类来模拟这两种数据结构,并实现其基本操作。 堆栈(Stack)是一种后进先出(LIFO, Last In First Out)的数据结构,它遵循“先进后出”的原则。常见的堆栈操作有压栈...
阶段练习:实现链表(LinkedList) 简介:写一个链表的数据结构,要求实现IList接口。 具体要求: 1、 使用代码规范。 2、 至少对IList中的Add,Remove,Insert,Indexer,IEnumerator进行单元测试。 3、 对上述每个...
在Java编程语言中,`LinkedList` 是一个常用的集合类,它实现了`List`接口,并且提供了额外的功能,如双端操作。本篇文章将探讨如何利用`LinkedList`来实现队列和栈这两种数据结构,以及其背后的原理和源码分析。 #...
本话题将深入探讨如何使用LinkedList来实现一个栈,并考虑在多线程环境下的同步问题。 首先,LinkedList类位于Java的`java.util`包中,它实现了List接口,允许我们存储和操作一系列元素。LinkedList内部维护了一个...
在Java编程语言中,LinkedList集合类是一个非常重要的数据结构,它可以用来实现栈和队列这两种特殊的数据结构。LinkedList是一个双链表,每个节点包含数据元素和两个引用,分别指向前后节点,这使得在列表中进行插入...
ArrayList、LinkedList、Vector 是 Java 中常用的数据结构实现类,它们都实现了 List 接口,但它们在存储方式、性能、线程安全性等方面有着不同特点。 首先,ArrayList 和 Vector 都是采用数组方式存储数据的,这种...
在Java编程语言中,LinkedList是一个常用的集合类,它实现了List接口,同时也提供了双向链表的实现。LinkedList不仅可以作为列表使用,还可以被巧妙地利用来构建栈(Stack)和队列(Queue)这两种基本数据结构。在本...
List<String> l1=new LinkedList();//使用泛型 //List l1= new LinkedList(); int index=0; //插入元素 l1.add("firstElement"); l1.add("secondElement"); l1.add("thirdElement"); //访问索引 ...
在本项目“Gourmet Coffee System”中,我们将深入探讨如何使用Java编程语言实现一个精致的咖啡制作系统。这个系统的设计和实现将涵盖多种Java编程概念,特别是迭代器的使用,这对于初学者理解Java集合框架的核心...
### List-LinkedList 单链表就地反转 #### 概述 本文主要介绍单链表的就地反转算法实现,并通过具体的C语言代码示例来解释这一过程。单链表是一种常见的线性数据结构,其中每个元素包含一个指向下一个元素的指针。...
在本文中,我们将深入探讨LinkedList如何实现List接口的一些主要方法,并了解其内部工作原理。 1. **添加元素**: LinkedList提供了`add(int index, E element)`和`add(E e)`方法来添加元素。`add(int index, E ...