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、付费专栏及课程。

余额充值