java单链表
来源:互联网 发布:衬衣有哪些面料知乎 编辑:程序博客网 时间:2024/05/01 17:18
节点类
package link; /** * @author wangpei * @version *创建时间:2017年3月3日 下午5:54:04 * javaz单链表的操作 */public class Node { protected Node next; protected int data;//数据区 public Node(){ } public Node(int data){ this.data=data; } public void print(Node current){ System.out.println("data="+current.data); }}
主要操作类:
package link; import java.util.ArrayList;/** * @author wangpei * @version *创建时间:2017年3月3日 下午5:58:10 * 单链表的操作 */public class Only { public void create_linkList1(Node head,int []data){//头插法建立单链表 for(int i=0;i<data.length;i++){ Node s=new Node(data[i]);//创建一个新节点 s.next=head.next; head.next=s; } } public void create_linkList2(Node node,Node r,int []data){//尾插法建立单链表 for(int i=0;i<data.length;i++){ Node s=new Node(data[i]);//创建一个节点 r.next=s; r=s; } } public void printAllNode(Node h){//打印所有节点信息。 Node current =h.next; while(current!=null){ current.print(current); current=current.next; } } public ArrayList<Integer> printAllNodeBytail(Node listNode){//打印所有节点信息。 ArrayList<Integer> list=new ArrayList<Integer>(); Node current =listNode.next; while(current!=null){ list.add(current.data); current=current.next; } for(int i=0;i<list.size()/2;i++){ int t=list.get(i); list.set(i, list.get(list.size()-i-1)); list.set( list.size()-i-1,t); } return list; } public boolean delete(Node node,int i){//删除单链表head上的i节点 Node p=get_Node(node,i-1);//获取到第i个节点 p.next=p.next.next; return false; } //根据头结点查找第i各节点 private Node get_Node(Node head,int i) { Node current =head; int j=0; while(current!=null){ if(j==i) break; current=current.next; j++; } return current; } //删除链表中的重复节点 public void deleteAgatin(Node head){ } //单链表的倒置,思想:从原来的链表中依次读出结果按头插法存在新链表中。 public void reverse(Node head){ Node p=head.next; Node q; head.next=null; while(p!=null){ System.out.println("进入该循环"); q=p; p=p.next; q.next=head.next; head.next=q; } // return rehead; } public static void main(String[] args) { Node head=new Node(); Node r=head; Only o=new Only(); int []data={1,2,3,4,5}; o.create_linkList2(head,r,data);//插入一个节点 o.printAllNode(head);// o.create_linkList2(2);//插入一个节点// o.create_linkList2(3);//插入一个节点 // o.printAllNode(head); //o.delete(1);// o.reverse(head);// o.printAllNode( head); ArrayList<Integer> list=o.printAllNodeBytail(head); for(int i:list){ System.out.println("list="+i); } }}
1 0
- 单链表-java
- Java 单链表
- java单链表
- Java单链表
- java单链表
- java 单链表
- java单链表
- java单链表
- java-单链表
- Java单链表反转 Java实现单链表翻转
- 【算法数据结构Java实现】Java实现单链表
- java数据结构之单链表
- java实现单链表
- Java实现单链表
- java--实现单链表
- Java单链表的实现
- java实现单链表
- java实现单链表
- EF 配置Oracle数据库数据库连接字符串
- meshgrid、interp2 、griddate matlab 使用
- 爪哇初学小程序---输出26个英文字母
- 安卓实现清除缓存功能
- spring学习-4-事务
- java单链表
- miniui合计一列与编辑备忘
- JavaScript—数组推导式(Array comprehensions)
- C++Primer第五版 第十二章习题答案(11~20)
- 关于printf()函数的点(还有各种各样的转换说明等你发现哦~)
- 前端面试学习(三)
- 云华听课笔记
- Android Service完全解析,关于服务你所需知道的一切(下)
- 求线段相交交点坐标