博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单链表的操作(C#)
阅读量:4138 次
发布时间:2019-05-25

本文共 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/

你可能感兴趣的文章
pytorch
查看>>
pytorch(三)
查看>>
ubuntu相关
查看>>
C++ 调用json
查看>>
nano中设置脚本开机自启动
查看>>
动态库调动态库
查看>>
Kubernetes集群搭建之CNI-Flanneld部署篇
查看>>
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
手绘VS码绘(二):动态图绘制(码绘使用Processing)
查看>>
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>
论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
查看>>
基于“分形”编写的交互应用
查看>>
《融入动画技术的交互应用》主题博文推荐
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>
Piper Sandler为EverArc收购Perimeter Solutions提供咨询服务
查看>>