单链表----定义、增加节点、删除节点、遍历输出(java)
2016-04-19 16:25
519 查看
单链表的结构比较简单,图示如下:
单链表有很多个节点构成。每个节点由指针域和数值域构成,指针指向下一个节点的数值域。最后一个节点的指针指向的是NULL。
java实现单链表的一些基本的操作:
单链表有很多个节点构成。每个节点由指针域和数值域构成,指针指向下一个节点的数值域。最后一个节点的指针指向的是NULL。
java实现单链表的一些基本的操作:
package test; import javax.xml.soap.Node; /** * 单链表的创建和增删改查 * @author duola */ public class SingleLinkList { public Listnode head; public Listnode current; // 添加节点 public void addnode(int data) { if (head == null) { head = new Listnode(data); current=head; } else { current.next=new Listnode(data); current=current.next;//移位 } } // 节点类 public class Listnode { int value; Listnode next; Listnode(int x) { this.value = x; } } //遍历循环,打印链表的元素 public void printList(Listnode l) { if(l==null) return; current=l; if(current!=null){ System.out.print(current.value+"\t"); current=current.next; printList(current);//递归调用 } } // 根据节点的data删除节点(仅仅删除第一个) public void deleteNode(int data) { Listnode cur = head; Listnode pre=cur;//保存位置 //找到目标元素的节点位置,cur while(cur.value!=data){ if(cur.next==null){ return; } pre=cur; cur=cur.next; } //判断cur的位置与头结点的关系 if(cur==head){ head=head.next;} else { pre.next=cur.next; } } //主方法 public static void main(String [] args) { int[] a={1,2,3,5,6,5,8}; int[] b={6,4,3,2,1}; SingleLinkList l1=new SingleLinkList(); SingleLinkList l2=new SingleLinkList(); //在链表中插入元素 for(int i=0;i<a.length;i++){ l1.addnode(a[i]); } for(int j=0;j<b.length;j++){ l2.addnode(b[j]); } //删除操作 l1.deleteNode(5); //打印链表的元素 l1.printList(l1.head); System.out.print("\n"); l2.printList(l2.head); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树