java实现单链表
来源:互联网 发布:写c语言是用记事本么 编辑:程序博客网 时间:2024/06/07 09:30
单链表的概念参照这个完全可以理解http://baike.baidu.com/link?url=-1uzZ37pcZwpN-1Zy2lCassJ2YqPQzjIPbQHdPXCwo0pGR5-sXiEY8kXNUjt2DubG_8JTSQBJrhTF182Kwo5Wq
下面是我的程序:
新建一个名为Node的类,data是数据域,而next是指针域
package singleLinkedList;/** * Created by lzh on 2/29/16. */public class Node { public Node next; public Object data;// public Node(){} public Node(Object data){ this.data = data; }}
在写一个类
package singleLinkedList;/** * Created by lzh on 2/29/16. */public class SingleLinkedList extends RuntimeException{ private Node first; private int length; public SingleLinkedList(){ init(); } /** * initialize SingleLinkedList */ private void init(){ this.first = null; } /** * * @param data insert data * @param locate insert location */ public void insert(Object data,int locate){ if(locate < 0){ throw new RuntimeException("please input valid locate"); }else if(locate == 0){ insert(data); }else { add(data,locate); } } private void add(Object data,int locate){ Node newNode = new Node(data); Node curr = first; int currLocate = 1; while(curr.next != null){ if(currLocate == locate){ newNode.next = curr.next; curr.next = newNode; length++; currLocate++; }else{ curr = curr.next; currLocate++; } } if(currLocate == locate){ curr.next = newNode; length++; currLocate++; }else if(currLocate< locate){ throw new RuntimeException("locate is out if size"); } } /** * * @param data insert data,default insert into first location of the SingleLinkList */ public void insert(Object data){ Node insert = new Node(data); insert.next = first; first = insert; length++; } /** * * @param data remove data of the SingleLinkedList * @return remove data */ public Object remove(Object data){ Node curr = first; boolean flag = false; if((curr.data).equals(data)){ first = curr.next; length--; flag = true; } while(curr.next != null){ if((curr.next.data).equals(data)){ if(curr.next.next != null){ curr.next = curr.next.next; length--; }else{ curr.next = null; } flag = true; } curr = curr.next; } return flag; } /** * * @param data find data in the SingleLinkedList * @return */ public boolean find(Object data){ Node curr = first; while(curr != null){ if((curr.data).equals(data)){ return true; }else{ curr = curr.next; } } return false; } /** * * @return the length of the SingleLinkedList */ public int size(){ return length; } public void listAll(){ Node curr = first; if(curr == null){ System.out.println("this SingleLinkedList is empty"); }else{ while(curr != null){ System.out.println(curr.data); curr = curr.next; } } } public boolean isEmpty(){ if(first == null){ return true; }else { return false; } }}
1 0
- 【算法数据结构Java实现】Java实现单链表
- java实现单链表
- Java实现单链表
- java--实现单链表
- Java单链表的实现
- java实现单链表
- java实现单链表
- 单链表java语言实现
- 单链表之Java实现
- java单链表实现
- 单链表操作java实现
- 单链表---java实现
- Java实现单链表
- Java实现单链表
- java语言实现单链表
- 单链表 java实现
- 用java实现单链表
- Java 实现单链表反序
- Activity之间的传值
- 用Python实现3种轮盘赌选择算法
- 51nod--贪心入门
- 用service还是thread?
- redis 与 jedis
- java实现单链表
- 2738: 矩阵乘法 整体二分+树状数组
- Java算法面试题
- 各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
- linux网络文件系统挂载配置
- <iframe>内联框架
- Hive 累积和的计算
- UltimateRecyclerView
- C语言实现单链表的逆序打印(带头结点)