C#单向链表 实例代码

//链表类代码,主要包含新加内容,求大小,删除,插入

   public class LinkListClass

    {
         private string sdata;
         private LinkListClass Head;
         private LinkListClass next;
        
         public LinkListClass()
        {
             Head= null;
             next= null;
        }
        
         public void Append( string item)  //新增内容
        {
             LinkListClass p= new LinkListClass();
            p. sdata=item;
            p. next= null;
             if( Head== null)
            {
                 Head=p;
            }
             else
            {
                 LinkListClass q= new LinkListClass();
                q= Head;
            
                 while(q. next!= null)
                {
                    q=q. next;
                }            
                q. next=p;    
            }
        }
        
         public int Length() //求链表大小
        {
             int ilen= 0;
             LinkListClass p= new LinkListClass();
            p= Head;
             while(p!= null)
            {
                ilen++;
                p=p. next;
            }
             return ilen;
        }
        
         public void Insert( string data, int index= 0) //按位置插入内容
        {
             LinkListClass p= new LinkListClass();            
            p. sdata=data;
             LinkListClass mybase= new LinkListClass();
            mybase= Head;
            
             if(index== 0)
            {
                 Head=p;
                p. next=mybase;
            }
             else
            {        
                 while(index--> 0 && mybase. next!= null)
                {
                    mybase=mybase. next;
                }
                p. next=mybase. next;
                mybase. next=p;
            }            
        }
        
         public bool Delete( int index) // 按位置删除内容
        {
             if( this. Length()<index)
            {
                 return false; //out of range
            }
            
             if(index== 0)
            {
                 Head= Head. next;
                 return true;
            }
            
             LinkListClass p= new LinkListClass();
            p= Head;    
             LinkListClass temp= new LinkListClass();
             while(index--> 0 && p. next!= null)
            {
                temp=p;
                p=p. next;
            }
            temp. next=p. next;
             return true;
        }
        
         public string GetValue( int index) //按位置查找值
        {
             if( this. Length()<index)
            {
                 return "OutOfRange";
            }
             else
            {
                 LinkListClass p= new LinkListClass();
                p= Head;
                 while(index--> 0)
                {
                    p=p. next;
                }
                 return p. sdata;
            }
        }

        public void Clear() // 清空链表
        {
            Head=null;
        }

    }

//使用代码示例:

    LinkListClass Mylinklist=new LinkListClass();          
            Mylinklist.Append("c");
            Mylinklist.Append("d");        
            
            Mylinklist.Insert("E");
            Mylinklist.Insert("F",3);
            Mylinklist.Insert("H",30);         

   string buff=Mylinklist.GetValue(3);          

            Mylinklist.Delete(2);
            Mylinklist.Delete(Mylinklist.Length());


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值