链表

我在这里直接写的是循环链表。

先是申请了一个节点类:

有三个成员,一是前继结点,一是后继结点,然后是数据。

提供三个构造函数。

public class list_node
  
  
   
    {
    private list_node
   
   
    
     next;
    private list_node
    
    
     
      previous;
    private T data;
    
    public list_node(){
    	this.data=null;
    	this.next=null;
    	this.previous=null;
    }
    public list_node(T t){
    	this.data=t;
    	this.next=null;
    	this.previous=null;
    }
    public list_node(list_node
     
     
      
       previous,list_node
      
      
        next,T data){ this.next=next; this.previous=previous; this.data=data; } public T Getdata(){ return this.data; } public list_node 
       
         Getnxt(){ return this.next; } public list_node 
        
          Getpre(){ return this.previous; } public void SetData(T t){ this.data=t; } public void Setnxt(list_node 
         
           node){ this.next=node; } public void Setpre(list_node 
          
            node){ this.previous=node; } }public class MyList 
           
             implements IList 
            
              { private list_node 
             
               head; private list_node 
              
                end; private list_node 
               
                 start; public MyList(){ Initialized(); } public MyList(T t){ Initialized(); this.head.SetData(t); } public Iiterator 
                
                  iteroater() { // TODO Auto-generated method stub return new MyIterator 
                 
                   (this); } @Override public list_node 
                  
                    add(T t) { list_node 
                   
                     node = newnode(); node.SetData(t); return node; } @Override public T get(list_node 
                    
                      p) { // TODO Auto-generated method stub return p.Getdata(); } public list_node 
                     
                       gethead(){ return this.head; } @Override public void delete(list_node 
                      
                        p) { } @Override public void revise(list_node 
                       
                         p) { // TODO Auto-generated method stub } @Override public void Initialized() { head=newnode(); head.Setnxt(head); head.Setpre(head); this.end=head; this.start=head; } @Override public list_node 
                        
                          newnode() { return new list_node 
                         
                           (); } public void putback(list_node 
                          
                            node){ end.Setnxt(node); node.Setpre(end); node.Setnxt(start); start.Setpre(node); end=node; } public void GetData(){ System.out.println(start.Getdata()); while(start!=end) { start=start.Getnxt(); System.out.println(start.Getdata()); } } public int Length(){ int length=1; while(start!=end){ length++; start=start.Getnxt(); } return length; } } 
                           
                          
                         
                        
                       
                      
                     
                    
                   
                  
                 
                
               
              
             
            
           
          
         
        
      
     
     
    
    
   
   
  
  

然后是链表类,主要实现的功能是往链表后面添加数据,获得链表的头数据,还有就是获得链表的长度。


这是实现链表数据结构的一个简单的小实例。

实现链表,主要是先构造一个结点类,然后构造链表类,结点类依据不同的链表应该是有不同的成员,主要体现在是否有前继后继。

我只是实现了简单的功能,如果要进行封装的话,可以再设计一个迭代器查看链表的数据,或是对数据进行一些操作。我这里有写就不上传了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值