曾几何时学习过数据结构,记得不太清楚了,好像是12年前的大学C语言版。今天拿出现保留的唯一一本大学教材,翻看时感觉还是那么的经典,真心佩服我校老师的水平,只可惜了教材内部使用。
现在用JAVA实现单向列表,表头插入、随机修改、随机删除,为了简单易懂,顺序查找实现,水平有限希望同行吐槽。
package com.zhaoyx.util;
public class Test {
public static void main(String[] args) {
LinkNode<String> link = new LinkNode<String>();
link.addNode("String1");
link.addNode("String2");
link.addNode("String3");
System.out.println(link.getNode(0));
System.out.println(link.getNode(1));
System.out.println(link.getNode(2));
link.putNode(1, "String4");
System.out.println(link.getNode(1));
link.removeNode(1);
System.out.println(link.getNode(1));
}
}
class LinkNode<E> {
E object;
LinkNode<E> next;
int length = 0;
public LinkNode() {
}
public void addNode(E e) {
if(0 == length) {
next = new LinkNode<E>();
next.object = e;
} else {
LinkNode<E> head = new LinkNode<E>();
head.object = e;
head.next = next;
next = head;
}
length++;
}
public void removeNode(int index) {
if(index >= length) return;
LinkNode<E> n1 = next;
LinkNode<E> n2 = next;
for(int i = 0; i < index; i++) {
n1 = n2;
n2 = n2.next;
}
n1.next = n2.next;
n2.next = null;
length--;
}
public void putNode(int index,E e) {
if(index >= length) return;
LinkNode<E> n = next;
for(int i = 0; i < index; i++) {
n = n.next;
}
n.object = e;
}
public E getNode(int index) {
if(index >= length) return null;
LinkNode<E> n = next;
for(int i = 0; i < index; i++) {
n = n.next;
}
return n.object;
}
}
运行结果:
String3
String2
String1
String4
String1
相关推荐
在"第一、二章"的压缩文件中,很可能包含了实现单向链表和双向链表操作的C、C++、Java或Python等语言的源代码示例。这些示例程序可能涉及了初始化链表、插入新节点、删除指定节点、查找特定元素、打印链表内容等功能...
java语言模拟单向链表,JAVA数据结构
本话题主要探讨两种常用的数据结构——单链表和双向链表在Java中的实现,以及相关的操作,如在头部添加节点、在尾部添加节点、遍历、逆置和删除。 首先,我们来理解单链表和双向链表的基本概念。单链表是一种线性...
链表是一种基础且重要的数据结构,它在计算机科学和编程,尤其是Java中有着广泛的应用。与数组不同,链表中的元素并不在内存中连续存储,而是通过节点间的引用(或称为指针)来连接。每个节点包含两部分:数据域,...
本篇将深入探讨由Java实现的单向链表和双向链表。 首先,我们来理解单向链表。单向链表中的每个节点包含两部分:数据域(存储实际数据)和指针域(存储指向下一个节点的引用)。这种结构使得链表只能向前遍历,不能...
数据结构-链表 JAVA语言实现,包含单向链表、双向链表、循环链表的遍历、删除和插入 详细介绍:http://blog.csdn.net/z740852294/article/details/77369439
这段源代码提供了一个简单的单向链表实现,包括插入、删除和打印链表的方法。你可以根据实际需求扩展其他功能,如查找节点、反转链表等。在培训班中,这样的代码示例有助于学员理解和掌握单向链表的工作原理及其在...
### JAVA单向链表的实现知识点详解 #### 一、链表基础概念 在深入了解Java单向链表的具体实现之前,我们首先需要了解链表的基本概念。链表是一种线性数据结构,它由一系列节点组成,每个节点包含两部分:数据域和...
该队列的主要特点是其内部数据结构采用了一个单向链表,并且实现了 BlockingQueue 接口,提供了线程安全的插入、删除和获取元素的操作。 单向链表是一种简单的数据结构,由一系列节点组成,每个节点包含数据以及...
在Java编程中,单向链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据元素和指向下一个节点的引用。这个数据结构允许快速插入和删除操作,但不支持随机访问。下面我们将深入探讨Java中单向链表的...
在Java中,链表主要分为单向链表和双向链表,而`LinkedList`类实现了`Deque`(双端队列)、`List`和`Queue`接口,因此它是一个双向链表。 `ArrayList`则基于数组实现,它提供了一个动态可变大小的数组,允许在任意...
在这个名为"单向链表实现的叫号程序"的案例中,我们可以通过分析`CallNum.java`文件来理解如何利用单向链表来实现一个简单的财务叫号系统。 首先,单向链表不像数组那样有一个连续的内存空间,它的每个元素(节点)...
2. **Java中的链表实现**: - **LinkedList类**:Java集合框架中的`java.util.LinkedList`类提供了链表数据结构的实现。它实现了List接口,支持添加、删除和修改元素,以及高效的迭代。 - **Node类**:LinkedList...
在编程领域,算法是解决问题的关键,而链表作为一种基础数据结构,在实现各种复杂算法时扮演着重要角色。本文将深入探讨Java中链表的操作实例,旨在帮助开发者更好地理解和运用链表来解决实际问题。 首先,我们需要...
非循环单向链表是一种常见的数据结构,在Java中实现它能帮助我们理解链表的基本操作,如插入、删除和遍历。在这个主题中,我们将深入探讨如何在Java中创建一个非循环单向链表,以及如何通过源码来实现其核心功能。 ...
3. 链表数据结构:介绍了链表的基本概念,包括数据域、指针域、单向链表、双向链表和循环链表的区别。 4. 链表的Java实现:通过具体的Java代码示例,说明了如何实现链表的基本操作,包括创建节点、链表的遍历、删除...
本资料包“java-数据结构代码实现”提供了使用Java语言实现数据结构的实例,旨在帮助开发者加深对数据结构的理解并提升编程技能。 1. **链表**:链表是一种动态数据结构,其元素在内存中不是顺序排列的。Java中的...
Java中的单向链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的引用。在这个实例中,我们将详细讨论如何在Java中实现单向链表,包括创建节点、插入节点、显示链表、...