用Java实现单链表数据结构
2016-09-25 10:29
302 查看
闲着,也不知道干嘛。就写写吧,嘻嘻! 单链表,想想看哈。首先,单链表,包括一個数据和一個节点。其中,数据用來存储数据,而节点用于存储下一個节点。这样才能构成一個链表关系。因为呢,只是存下一個链表,所以呢就叫单链表数据结构啦。如果是存前面的和后面的,那是双链表哈。 OK。要不,來個图片吧!我用PPT來画一下,嘻嘻! 那么,这样子的话,就是一個单链表结果啦。 具体用代码怎么实习那呢?來吧,就直接新建一個SingleLink.java文件吧,嘻嘻!很多年沒有这样写代码了是吧! public class SingleLink{ //第一個节点 private Node headNode = null; //前一個节点 private Node preNode = null; //描述一個结构,所以呢,我们需要存数据的,和存下一個节点 private class Node{ Object data;//存数据 Node nextNode;//存下一個节点 } //对于数据结构,是不是有添加数据,删除数据,遍历数据等操作呢? //先來個添加数据吧 public void add(Object data){ //首先要创建节点 Node node = new Node(); //然后赋值 node.data = data; //再把下一個指向关联好即可,也就是前一個节点要指向当前的节点。 //但是我们要考虑的是,假如,当前是第一個节点呢,那就沒有前一個节点吧。 //所以,如果是第一個节点的话,那么,直接让这個节点为前一個节点即可。 //好,看码: if(headNode == null){ headNode = node; preNode = headNode; } //如果已经有了第一個节点,那么,目前这個节点关联到前一個节点上。 preNode.nextNode = node; preNode = node; } //再來一個遍历的方法 public String showAllDatas(){ StringBuilder sb = new StringBuilder(); //从第一個几点开始,获取到下個节点的数据 Node tempNode = headNode; while(tempNode != null){ sb.append(tempNode.data +" "); tempNode = tempNode.nextNode; } return sb.toString(); } }然后呢,用一個主函数测试一下哈: public class Test{ public static void main(String[] args){ //创建一個SingleLink对象,用于存数据 SingleLink sl = new SingleLink(); //添加数据 sl.add(12); sl.add("bbs.sunofbeaches.com"); sl.add(54); sl.add("www.sunofbeaches.com"); //遍历数据 System.out.println(sl.showAllDatas()); } }再來,编译运行一下: C:\Users\Administrator\Desktop>javac SingleLink.java C:\Users\Administrator\Desktop>javac Test.java C:\Users\Administrator\Desktop>java Test 12 bbs.sunofbeaches.com 54 www.sunofbeaches.com C:\Users\Administrator\Desktop> 爽不爽,是不是这個世界又美好了一些呢? 当然,你还可以对这個数据进行排序,如果是这個自定义的对象,那么我们需要指定泛型呀,并且定义接口 去让子类实现比较的方法。你比较的时候,直接调用接口里的方法即可。再根据比较结果,去存储数据哈,嘻嘻! 是不是很简单呢!來吧,动手写一下,你也可以的!加油,如果不会,欢迎讨论哦! |
相关文章推荐
- 使用java实现双向链表数据结构
- 【Java数据结构】2.4单循环链表的实现
- Java实现单链表数据结构
- 数据结构——单向传统链表(java实现)
- 数据结构Java实现04----循环链表、仿真链表
- 单链表-数据结构-java实现
- 数据结构java实现之双端链表
- 数据结构Java实现03----单向链表的插入和删除
- 数据结构链表(java版)的实现和思考
- 数据结构Java实现 ----循环链表、仿真链表
- java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表
- 数据结构:二叉树的二叉链表存储--Java实现
- java与数据结构(4)---java实现双向循环链表
- 数据结构Java实现04----循环链表、仿真链表
- java数据结构之LinkedQueue(用链表实现的双端单向队列)
- 【Java数据结构】2.1单链表的实现
- java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表
- 数据结构:线性表的链式存储(单向链表)--Java实现
- 数据结构Java实现04----循环链表、仿真链表
- 数据结构(三):链表的Java实现