博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA数据结构之单链表操作简单实现
阅读量:7077 次
发布时间:2019-06-28

本文共 2965 字,大约阅读时间需要 9 分钟。

和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 LinkList19 {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 args60      */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): 
 

转载地址:http://ybpml.baihongyu.com/

你可能感兴趣的文章
给MariaDB开启日志审计功能
查看>>
DW快速去除tppabs冗余代码
查看>>
AngularJs(3)
查看>>
HT for Web的HTML5树组件延迟加载技术实现
查看>>
MySQL备份,恢复方案,mysqlbinlog,mysqldump,主从,主主复制
查看>>
python执行linux命令
查看>>
ssh配置文件详解
查看>>
docker run 与docker start的区别,为容器命名
查看>>
Kali 2.0使用SSH进行远程登录
查看>>
阿里CEO张勇首谈商业未来:大数据将成新能源
查看>>
shell基础(二)cut用法
查看>>
类的属性总结
查看>>
在64位Win7下为HP LaserJet 1012安装网络打印机驱动
查看>>
电子邮件地址策略
查看>>
如何快速安装Webmin(linux系统web管理配置工具)
查看>>
PHP带头大哥学习的三部曲!
查看>>
apache忽略文件后缀
查看>>
家电奥斯卡后的全球趋势
查看>>
puppet-笔记1
查看>>
.Net组件程序设计之线程、并发管理(二)
查看>>