java中实现链表(转)

分析: 
上述节点具备如下特征: 
1、 每个节点由两部分组成(存储信息的字段,存储指向下一个节点的指针) 2、 节点之间有着严格的先后顺序。 
3、 单链表节点是一种非线性的结构,在内存中不连续分配空间。

 设计: 

设计节点 

设计涉及到算法: 初始化单链表: 
1、 提供一个init方法,用来加载链表数据 2、 实现链表的链接。

具体代码如下:

public class Linker {  
 public NODE head; 
 //define the initial function to init the single linker! 
 public void init(char v_char[])  {  
 NODE ptr  
  NODE p new NODE();  
head = p; 
  for(int i = 0; i < v_char.length;i++)   
{    
ptr new NODE();   
 
   ptr.info = v_char[i]; 
   p.link = ptr;   
 ptr.link null;   
 p = ptr; 
}
} 
 //define search in linker 
 public boolean searchinlinker(char ch)  {  
 boolean flag = false;   NODE ptr;    ptr = head.link;   while( ptr != null)   {    

if(ch == ptr.info)    {  
   flag = true;   
  break;     }   
 
else  {    ptr = ptr.link;    }       return flag;   }   //define the insert fuction   public void insertintolinker(char pos,char ch)  {   
NODE ptr;  
NODE p;  ptr 
= head.link;  
while( ptr != null)   
{    
if(pos == ptr.info)    {     

//实现数据插入     p = new NODE();     p.info = ch;     p.link = ptr.link;     ptr.link = p;     break;     }    else {     ptr = ptr.link;    }   }     //defin the delete function    public void deletefromlinker(char ch) {   NODE ptr;   NODE p;    ptr = head.link;   p = head;    while( ptr != null)   {    
if(ch == ptr.info)    {    
 //实现数据删除      p.link = ptr.link;    
 System.gc();     break;     }    else   
 {     p = ptr;       ptr = ptr.link;    }     }   }       //defin the print linker  public void printlinker()  {   NODE ptr;    ptr = head.link;   while (ptr != null)   {   
 System.out.print("  " + ptr.info + "->");    ptr = ptr.link;   }    System.out.println("null");      }  }

 

posted @ 2015-12-17 11:32  秦萧不再  阅读(166)  评论(0编辑  收藏  举报