这里给出链表的java实现##
//先定义一个节点对象 class Node{ //数据域 public Object data; //指针域 public Node link; public Node(){ this.data = null; this.link = null; } public Node(Object obj){ this.data = obj; this.link = null; } }
然后我们开始创建我们的链表
//定义一个单端链表 理解单链表的头节点与指针 class LinkedList{ //定义一个头节点 public Node header; //定义一个指向指向当前节点的指针 public Node Current; //定义单链表的长度 public int count; //初始化单链表 public LinkedList(){ count = 0 ; //造一个头节点 header = new Node("Header"); header.link = null; //当前的指针指向头节点 Current = header; } //打印单链表 public void PrintList(){ Current = header; while(Current.link!=null){ System.out.println(Current.link.data); Current = Current.link; } } //给单链表添加节点 public void addNodeToTail(Object obj){ Node n = new Node(obj); Current.link = n; Current = Current.link; count++; } //把单链表清空 public void listEmpty(){ //将头节点指向空 header.link = null; //将链表指针指向头节点 Current = header; } //删除第i个位置的元素 public void delNodeByNum(int i){ if(i<0||i>count-1){ System.out.println("删除第i个位置元素无效。。"); return; } //将Current指向头节点 Current = header; int index = -1; //找到第i个元素的前一个位置 while(index !=i-1){ Current = Current.link; index++; } Current.link = Current.link.link; count--; } //在第i个位置添加元素 public void AddNodeByNum(int i,Object obj){ if(i<0||i>count-1){ System.out.println("插入的位置无效。。"); return; } //将current指针指向头节点 Current = header; //找到要插入元素的前一个位置 int index = -1; while(index != i-1){ Current = Current.link; index++; } //开始添加元素了 Node n = new Node(obj); n.link = Current.link; Current.link = n; count++; } }