链表:一种离散存储数据的方式,每一个数据块包含一个数据和对下一个数据的引用,首结点无前驱,末结点无后继。链表不按顺序存储,所以插入和删除操作效率很高(O(1)),仅需要改变一两个引用值,不需要移动和复制数据,但是查找效率很低,因为要遍历整个链表。链表是一种自我指示数据类型,因为它包含指向另一个相同类型的数据的指针(链接)。使用链表存储数据的另一个优点就是需要多少内存就有多少,而数组的大小在创建时就固定了。值得一提的是向量,是一种可扩展的数组,它可通过可变长度解决这个问题,但是其一般只允许国定大小的增长(比如,一半),但是效率仍要比链表低。链表有很多种不同的类型:单向链表,双向链表以及循环链表。链表中最简单的一种是单向链表,它包含两个域,一个信息域和一个指针域。这个链接指向列表中的下一个节点,而最后一个节点则指向一个空值。单向链表只可向一个方向遍历。下面是单链表的java实现。
package cn.zhf.list;
public class Link {
public int idata;//存放int 类型的数据
public double ddata;//double类型的数据
public Link next;//对下一个Link对象的引用
public Link(int id, double dd) {
idata = id;
ddata = dd;
}
public void diaplay() {
System.out.println(idata + "," + ddata);
}
}
public class LinkList {
private Link first;
public LinkList() {
first = null;
}
public boolean isEmpty() {
return (first == null);
}
//插入一个元素
public void insertFirst(int id, double dd) {
Link link = new Link(id, dd);
link.next = first;//next元素链接first
first = link;//first元素链接link
}
//删除一个元素
public Link deleteFirst() {
Link temp = first;
first = first.next;
return temp;
}
//显示链表的元素
public void displayLink() {
Link current = first;
while (current != null) {
current.diaplay();
current = current.next;
}
}
public static void main(String[] args) {
LinkList list = new LinkList();
list.insertFirst(12, 12.3);
list.insertFirst(11, 12.4);
list.insertFirst(14, 12.5);
list.displayLink();
while (!list.isEmpty()) {
Link flink = list.deleteFirst();
System.out.print("deleting -->");
flink.diaplay();
}
list.displayLink();
}
}
结果:
14,12.5
11,12.4
12,12.3
deleting -->14,12.5
deleting -->11,12.4
deleting -->12,12.3
分享到:
相关推荐
数据结构-链表 JAVA语言实现,包含单向链表、双向链表、循环链表的遍历、删除和插入 详细介绍:http://blog.csdn.net/z740852294/article/details/77369439
Java 数据结构 链表 Java链表 数据结构链表
java 数据结构 链表 自己写的 java 数据结构 链表 自己写的 java 数据结构 链表 自己写的
Java数据结构 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构
Java语言编写的数据结构-链表实现。包括顺序表和单链表、双链表
用java实现了数据结构中的链表,作为新手学习数据结构和java的资料。
数据结构,用Java实现链表 private class Node { private String data; private Node next; public Node(String dataPortioin) { data = dataPortioin; next = null; } public Node(String ...
JAVA实现链表 有序二叉树 队列的代码例子
JAVA链表实现类(数据结构学习).chm
数据结构之双向链表的Java实现.doc
约瑟夫环求解,循环链表的使用,经典问题
java 数据结构 遍历链表程序 有研究或探讨的请加群:37424970 或联系本人MSN或邮箱:zhuseahui@yahoo.com.cn
一、用链表或者顺序表实现以下系统,完成线性表的建立(至少包括10个结点),以及线性表中信息(结点)的插入、查找、删除、修改、输出等操作,具体的模块要求见上方的“总的模块要求”。建议用“文件”存储数据。 1...
链表 链表_使用JAVA语言实现链表数据结构
基于java技术,利用swing作为界面展示,实现数据结构链表、堆栈的演示
数据结构的定义 数据结构是计算机存储、组织数据的方式,用于高效地访问和修改数据。...Java提供了丰富的数据结构库,包括数组、链表、栈、队列等,这些数据结构为程序员提供了处理各种问题的工具和方法。
基于JAVA实现的常用数据结构代码,JAVA实现复杂度、动态数组、链表、栈、队列、二叉搜索树等
数据结构 链表
用Java定义一个双向链表,实现链表的基本操作: 初始化、获取头结点、添加新元素、删除链表元素、 获取链表元素、查找链表元素、更新链表中某个元素、 判断链表是否为空、求链表元素个数、输出链表元素、清空链表。
课设的题目:教材管理系统 链表存储,有界面设计,有文件导入模块,用Java写的, 两个信息类:教材类和出版社类 一个数据类:链表的实现和文件导入 一个管理类:界面的实现和两个信息的增删改查(教材还有出入库)