java实现线性链表

来源:互联网 发布:专业中英文校对软件 编辑:程序博客网 时间:2024/06/07 00:04
import java.util.ArrayList;public class Xianxinglianbiao1 {  //创建头节点public static void main(String[] args) {// TODO Auto-generated method stubNode hear=new Node("   头节点    ");Lianbiao l=new Lianbiao(hear);Node num1=new Node("no.1");l.add(l.gethear(),num1);Node num2=new Node("no.2");l.add(num1,num2);Node num3=new Node("no.3");l.add(num2,num3);Node num4=new Node("no.4");l.add(num3,num4);Node num5=new Node("no.5");l.add(num4,num5);System.out.print("经过重复添加获得:");l.bianli();System.out.print("将结点内容no.6添加到no.3后面得:");Node num6=new Node("no.6");        l.add(num3, num6);        l.bianli();        System.out.print("将结点内容no.7添加到位置5得:");        Node num7=new Node("no.7");        l.add(5, num7);        l.bianli();        System.out.print("删除位置4结点得:");        l.del(4);        l.bianli();        System.out.print("删除内容no.7的所有结点得:");        l.del("no.7");        l.bianli();        l.chazhao(3);        l.chazhao("no.3");}}class Node{String data;Node next=null;Node(String data){this.data=data;}public String getdata(){return data;}public Node getnext(){return next;}public void setnext(Node next){this.next=next;}}class Lianbiao{Node hear=null;Lianbiao(Node hear){this.hear=hear;}public Node gethear(){return hear;}//链表结点的添加public void add(Node prenode,Node node){node.setnext(prenode.getnext());prenode.setnext(node);}//结点的添加2.0public void add(int i,Node node){Node n=hear;while(i>0){if(i==1){node.setnext(n.getnext());n.setnext(node);}n=n.getnext();i--;}}//结点的删除(指定位置删除)public void del(int i){Node n=hear;while(i>0){if(i==1){n.setnext(n.getnext().getnext());}n=n.getnext();i--;}}//结点的删除2.0(指定内容删除)public void del(String str){Node n=hear;Node m=n;while(n!=null){if(n.getdata()==str){m.setnext(m.getnext().getnext());}m=n;n=n.getnext();}}//结点内容查找(根据位置查找内容)public void chazhao(int i){Node n=hear;System.out.print("位置"+i+"结点内容为:");while(i>0){if(i==1){System.out.println(n.getnext().getdata());}n=n.getnext();i--;}}//结点内容查找(根据内容查找位置)public void chazhao(String str){Node n=hear;int i=0,j=0;while(n!=null){if(n.getdata()==str){System.out.print("内容"+str+"结点位置为:"+i+" ");j=1;}i++;n=n.getnext();}if(j==0){System.out.println("没有找到内容"+str+"的结点");}else{System.out.println();}}//遍历输出链表public void bianli(){Node n=hear;while(n!=null){System.out.print(n.getdata()+" ");n=n.getnext();}     System.out.println();}}

*原创作品,转载请表明出处。有建议或者问题欢迎联系我,QQ1595787997