本文共 1889 字,大约阅读时间需要 6 分钟。
public class LinkList
{ public int data; public LinkList next; public void Create(ref LinkList L) { L = new LinkList(); LinkList q = L; L.next = null; Console.WriteLine("请输入单链表元素:"); string s= " "; for (int i = 0; i <= 4; i++) { LinkList p = new LinkList(); s = Console.ReadLine(); p.data = Int32.Parse(s); p.next = q.next; q.next = p; q = q.next; } }public void Print(LinkList L)
{ LinkList p; p = L.next; while (p != null) { Console.Write(" "+ p.data); p = p.next; } } public void Empty(LinkList L) { if(L.next!=null) Console.WriteLine ("链表非空"); else Console.WriteLine ("链表为空表"); }//判断单链表是不是空表public void Clear(LinkList L)
{ L.next =null; }//将单链表置空public void GetElem(LinkList L,int i,ref int e)
{ LinkList p=L.next; int j=1;//计数器 while(p!=null&&j<i) { p=p.next; j++; } if(p==null||j>i) Console.WriteLine("error");//第i个元素不存在 e=p.data;//取第i个元素 }//取单链表中第i个元素 public void Delete( ref LinkList L,int i,ref int e) { LinkList p=L; int j=0;//计数器 while ((p.next!=null)&&j<i-1) { p=p.next; j = j + 1; } if((p.next==null)||(j>i-1)) Console.WriteLine("error1"); LinkList q=p.next; p.next=q.next; e=q.data;//存储删除的元素 }//删除单链表中第i个元素public void Insert(ref LinkList L,int i,int e)
{ LinkList p=L; int j=0; while((p!=null)&&(j<i-1)) { p=p.next; j++; } if(p==null||j>i-1) Console.WriteLine("error2"); LinkList s=new LinkList(); s.data=e; s.next =p.next ; p.next =s; }//在单链表的第i个元素前插入e public int Length(LinkList L) { int j=0;//用来记录单链表中元素个数 LinkList p=L; while (p.next!=null) { p=p.next; j++; } return j; }//求单链表中元素个数}
class Program { static void Main(string[] args) { int a=0;//用来存储所取元素 int b=0;//用来存储被删除的元素 int c=0;//用来记录单链表长度 LinkList La = new LinkList(); La.Create(ref La); La.Print(La); Console.WriteLine(); La.GetElem(La, 3, ref a); La.Delete(ref La, 4, ref b); La.Insert(ref La, 1, 99); c=La.Length(La); La.Print(La); Console.WriteLine(); Console.WriteLine("a=" + a + " b=" + b + " c=" + c); } }
转载地址:http://tcmvi.baihongyu.com/