开发者社区> 天飞> 正文

JAVA数据结构之单链表操作简单实现

简介:
+关注继续查看

和C的语法明显不一样哈。

C的链表里,绝对离不开的是*---指针。

其实JAVA和代码思路和C的完全一样呀,

只是JAVA用数据类型的传值(简单类型,结构)和传引用(数组,对象)来区别指针和非指针。

栈数据和堆数据,其实一样。。。只是看自动化程度的高低以及执行效率的高低互有分别。。

下面代码实现的是前插式,也就是插入和删除节点都是从第一个开始的。

我加了输出语句,显示更明显。

复制代码
 1 class Link
 2 {
 3     public int iData;
 4     public double dData;
 5     public Link next;
 6     
 7     public Link(int id, double dd)
 8     {
 9         iData = id;
10         dData = dd;
11     }
12     public void displayLink()
13     {
14         System.out.print("{" + iData + ", " + dData + "}");
15     }
16 }
17 
18 class LinkList
19 {
20     private Link first;
21     
22     public LinkList()
23     {
24         first = null;
25     }
26     public boolean isEmpty()
27     {
28         return (first == null);
29     }
30     public void insertFirst(int id, double dd)
31     {
32         Link newLink = new Link(id, dd);
33         newLink.next = first;
34         first = newLink;
35         System.out.println("Insert " + id + ", " + dd + " to LinkList!");
36     }
37     public Link deleteFirst()
38     {
39         Link temp = first;
40         first = first.next;
41         return temp;
42     }
43     public void displayList()
44     {
45         System.out.println("List (first-->last): ");
46         Link current = first;
47         while(current != null)
48         {
49             current.displayLink();
50             current = current.next;
51         }
52         System.out.println(" ");
53     }
54 }
55 
56 public class LinkListApp {
57 
58     /**
59      * @param args
60      */
61     public static void main(String[] args) {
62         LinkList theList = new LinkList();
63         
64         theList.insertFirst(22, 2.99);
65         theList.displayList();
66         theList.insertFirst(44, 4.99);
67         theList.displayList();
68         theList.insertFirst(66, 6.99);
69         theList.displayList();
70         theList.insertFirst(88, 8.99);
71         theList.displayList();
72         theList.insertFirst(99, 9.99);
73         
74         theList.displayList();
75         
76         while(!theList.isEmpty())
77         {
78             Link aLink = theList.deleteFirst();
79             System.out.println("Deleted!");
80             aLink.displayLink();
81             System.out.println(" ");
82             theList.displayList();
83             
84         }
85 
86     }
87 
88 }
复制代码

Insert 22, 2.99 to LinkList!
List (first-->last):
{22, 2.99}
Insert 44, 4.99 to LinkList!
List (first-->last):
{44, 4.99}{22, 2.99}
Insert 66, 6.99 to LinkList!
List (first-->last):
{66, 6.99}{44, 4.99}{22, 2.99}
Insert 88, 8.99 to LinkList!
List (first-->last):
{88, 8.99}{66, 6.99}{44, 4.99}{22, 2.99}
Insert 99, 9.99 to LinkList!
List (first-->last):
{99, 9.99}{88, 8.99}{66, 6.99}{44, 4.99}{22, 2.99}
Deleted!
{99, 9.99}
List (first-->last):
{88, 8.99}{66, 6.99}{44, 4.99}{22, 2.99}
Deleted!
{88, 8.99}
List (first-->last):
{66, 6.99}{44, 4.99}{22, 2.99}
Deleted!
{66, 6.99}
List (first-->last):
{44, 4.99}{22, 2.99}
Deleted!
{44, 4.99}
List (first-->last):
{22, 2.99}
Deleted!
{22, 2.99}
List (first-->last): 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java算法基础 - 单链表详解(文末有配套视频)
咳咳,我是小白,没错,主线剧情又回来了。现在我遇到麻烦了,老板要我设计一个类,可以用来保存多个客户的资料。
20 0
【Java基础】 建立一个单链表(增删查改)
链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。
22 0
《Java数据结构基础》单链表的手动实现
《Java数据结构基础》单链表的手动实现
15 0
【Java数据结构】实现单链表
【Java数据结构】实现单链表
23 0
Java单链表的应用实例
Java单链表的应用实例
24 0
Java数据结构之单链表(配图详解,简单易懂)
链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的,看着这段文字抽象不,生硬不(本笔记主要介绍单向不带头节点非循环链表)
42 0
java语言实现单链表---不含头结点
java实现单链表—含头结点,且该篇文章与另一篇含头结点的实现单链表的文章第一部分均是重复的,若看可忽略,说到这里必须要写下含不含头结点的区别,带有头结点是为了更好的实现单链表的功能,带有头结实现的insert、remove等方法相比于不带头结点的单链表会更简洁一些,此外,学习不带头结点的和带有头结点的单链表是没有区别的。
23 0
java语言实现单链表--含头结点
线性表是我们最常用的一种数据结构,线性表包含顺序表和链表,顺序表典型应用就是我们常用的ArrayList,链表的典型应用其中就有我们常用的LinkedList。LinkedList他的底层就是使用链表来存储数据元素的。这篇文章用以总结单链表的实现以及使用并且对比单链表与顺序表的优缺点,确定其使用功能场景。
37 0
单链表的基本操作(Java实现)
单链表的基本操作(Java实现)
84 0
通用版!完整代码,单链表SingleLinkedList增删改查,反转,逆序,有效数据等Java实现
通用版!完整代码,单链表SingleLinkedList增删改查,反转,逆序,有效数据等Java实现
37 0
+关注
天飞
一个运维老同志
文章
问答
视频
文章排行榜
最热
最新
相关课程
更多
相关电子书
更多
JAVA开发手册1.5.0
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多