`
shenyu
  • 浏览: 122990 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

LinkedList 列表

 
阅读更多

列表的简单实现,只能存储非负整数

List 也属于ADT(抽象数据类型),此处是使用DLink类实现List。

另外一个实现请参见ArrayList

 

 

设置,取值的方法:

set,get

添加,插入,删除的方法

add ,insert, remove

其他方法

getLength, indexOf

class LinkedList {
	private DLink link = new DLink();
	void add(int value) {
		link.addLast(value);
	}

	void set(int value, int pos) {
		assert pos < link.getLength();
		link.resetBeforeFirst();
		for(int i=0; i<pos; i++) link.next(); 
		link.removeAfter();
		link.insertAfter(value);
	}

	int get(int pos) {
		assert pos < link.getLength();
		link.resetBeforeFirst();
		for(int i=0; i<pos; i++) link.next(); 
		return link.next();
	}

	void insert(int value,int pos) {
		assert pos <= link.getLength();
		link.resetBeforeFirst();
		for(int i=0; i<pos; i++) link.next(); 
		link.insertAfter(value);

	}

	int remove(int pos) {
		assert pos <= link.getLength();
		link.resetBeforeFirst();
		for(int i=0; i<pos; i++) link.next(); 
		return link.removeAfter();
	}

	int getLength() {
		return link.getLength();
	}

	int indexOf(int value) {
		return link.indexOf(value);
	}
}
 

 

分享到:
评论

相关推荐

    分析Java中ArrayList与LinkedList列表结构的

    ArrayList与LinkedList是Java集合框架中两种常见的列表结构,它们都实现了List接口,但在实现方式和性能上有所不同。 **ArrayList源码分析** ArrayList内部基于动态数组实现,它的核心数据成员是一个Object类型的...

    使用LinkedList模拟堆栈

    LinkedList的addFirst()方法可以将元素添加到列表的开头,这对应于堆栈的顶部。 ```java public void push(Object item) { stack.addFirst(item); } ``` 3. 实现弹栈操作。LinkedList的removeFirst()方法会移除并...

    基于LinkedList高性能android列表适配器

    LinkedList高性能Android列表适配器是为了解决ListView、RecyclerView等列表控件在处理大量数据时可能出现的性能问题。LinkedList是一种双向链表数据结构,与ArrayList相比,它在插入和删除操作上具有更好的性能,但...

    JAVA利用LinkedList构造栈与队列

    LinkedList不仅可以作为列表使用,还可以被巧妙地利用来构建栈(Stack)和队列(Queue)这两种基本数据结构。在本篇内容中,我们将探讨如何通过LinkedList实现栈和队列,以及它们在实际编程中的应用。 首先,栈是一...

    java中LinkedList任意排序实例

    在Java编程中,LinkedList是一个非常重要的数据结构,它实现了List接口,允许我们在列表的任何位置进行插入和删除操作。LinkedList内部使用双向链表实现,因此它的遍历速度比ArrayList快,但随机访问性能较差。本...

    创建一个 LinkedList项目.docx

    使用 `add()` 方法可以将元素添加到列表末尾,内部会调用 `linkLast()` 方法。 3. 插入元素: 除了 `add()` 方法外,还可以使用 `addFirst()`、`addLast()`、`addBefore()` 或 `addAfter()` 方法在特定位置插入...

    java LinkedList的添加删除操作

    LinkedList以链表的形式存储元素,这使得它在添加和删除元素时具有较高的效率,尤其是在列表的中间或开头进行操作。下面我们将深入探讨Java LinkedList的添加和删除操作。 1. 添加元素: - `add(E e)`: 在列表末尾...

    LinkedList的用法

    以上介绍了`LinkedList`中的一些常用方法,包括在列表头部或尾部添加元素、获取头部或尾部元素、克隆列表以及遍历等操作。理解这些方法的使用场景可以帮助开发者更好地利用`LinkedList`来构建高性能的应用程序。

    ArrayList LinkedList Vector性能测试

    LinkedList是基于双向链表实现的列表,每个节点包含数据和两个引用,分别指向前后节点。LinkedList在插入和删除操作时具有优势,因为它只需要改变相邻节点的引用即可,而无需移动元素。然而,对于随机读取,...

    LinkedList的实现.zip

    LinkedList的主要特点是每个元素(称为节点)包含数据以及指向下一个节点的指针,这种结构使得在列表中间添加或删除元素相对高效。在这个“LinkedList的实现.zip”文件中,我们有三个头文件——Link.h、List.h和...

    比较ArrayList、LinkedList、Vector1

    - **add()操作**:ArrayList在列表末尾添加元素的时间复杂度为O(1),而LinkedList为O(1)。 - **remove()操作**:ArrayList删除指定索引元素的时间复杂度为O(n),因为需要移动元素;LinkedList删除指定索引元素的...

    Java 中Linkedlist类的源代码

    这个数据结构允许我们在列表的任何位置进行插入和删除操作,具有O(1)的时间复杂度,这使得LinkedList在需要频繁进行这些操作时比ArrayList更高效。LinkedList类位于java.util包中,它还实现了Deque(双端队列)接口...

    Java中ArrayList和LinkedList区别 时间复杂度 与空间复杂度1

    - 如果列表操作主要涉及顺序遍历或者频繁的插入、删除,LinkedList 更合适。 5. 空间复杂度: - ArrayList 需要连续的内存空间,所以可能需要频繁扩容,导致额外的空间开销。 - LinkedList 每个元素占用额外的...

    关于arraylist和linkedList的区别

    - 当需要频繁地在列表中间插入或删除元素时,使用`LinkedList`更为合适。 - 适用于经常需要改变列表大小的情况,比如作为栈、队列等数据结构的基础实现。 #### 三、总结 - **性能对比**: - 对于`ArrayList`而...

    LinkedList实现栈

    LinkedList是一种链表结构,它提供了双向链接的能力,允许我们在列表的任何位置进行插入和删除操作。本话题将深入探讨如何使用LinkedList来实现一个栈,并考虑在多线程环境下的同步问题。 首先,LinkedList类位于...

    LinkedList 部分源码

    `LinkedList`是Java集合框架的一个重要组成部分,它基于双向链表实现,既支持`List`接口也实现了`Deque`接口,因此可以作为列表、栈或者队列使用。双向链表的每个节点包含一个数据元素以及前后两个指针,分别指向其...

    源码解析jdk7.0集合:LinkedList的底层实现原理.pdf

    首先,LinkedList实现了List接口,因此它是一个有序列表。它还实现了Deque接口,这意味着LinkedList支持双端队列的操作。除了这些接口之外,LinkedList还是Cloneable和java.io.Serializable的,表示它可以被克隆以及...

    java中LinkedList集合类实现栈和队列.doc

    LinkedList是一个双链表,每个节点包含数据元素和两个引用,分别指向前后节点,这使得在列表中进行插入和删除操作相对高效,但随机访问性能较差。 栈(Stack)是后进先出(LIFO)的数据结构,它只允许在栈顶进行...

    JavaScript 实现基础 LinkedList 功能

    JavaScript中的LinkedList是一种常见的数据结构,它允许我们在列表的任意位置高效地添加和删除元素。在JavaScript中实现LinkedList,我们需要理解其基本概念、操作以及如何用原生JavaScript对象来模拟链表结构。 ...

Global site tag (gtag.js) - Google Analytics