• C#实现单链表的定义、插入、删除、查找


    本文介绍C#实现单链表数据结构的定义、插入、删除、查找
    1、单链表的定义
    ///
    /// 节点类
    ///
    ///
    public class ListNode {
    //节点值
    public int Value;
    //前一个节点
    public ListNode Previous;
    //后一个节点
    public ListNode Next;
    }
    2、单链表头插入法
    ///
    /// 单链表插入–头插入法
    ///
    ///
    ///
    public static ListNode CreatList1(ref ListNode L,int e) {
    //每次均在头节点之后插入元素
    ListNode s = new ListNode();
    s.Value = e;
    s.Next = null;
    if (L == null)
    {
    L = s;
    L.Next = null;
    }
    else {
    s.Next = L.Next;
    L.Next = s;
    }
    return L;
    }
    3、单链表的尾插入法
    ///
    /// 单链表插入—尾插法
    ///
    ///
    public static ListNode CreatList2(ref ListNode L, ref ListNode real,int e) {
    ListNode s = new ListNode();
    s.Value = e;
    s.Next = null;
    if (L == null) {
    L = s;
    real = s;
    real.Next = null;
    }else
    {
    real.Next = s;
    real = s;
    }
    return L;
    }
    4、单链表的按序号查找节点值
    ///
    /// 按序号查找节点值
    ///
    ///
    ///
    public static ListNode GetElem(ListNode L,int i) {
    int j = 1;
    ListNode p = L.Next;
    if (i == 0)
    return L;
    if (i < 1)
    return null;
    while (p != null && j < i) {
    p = p.Next;
    j++;
    }
    return p;
    }
    5、单链表按值查找节点
    ///
    /// 按值查找节点
    ///
    ///
    public static ListNode GetElem2(ListNode L, int e) {
    ListNode p = L;
    while (p!=null&&p.Value!=e) {
    p = p.Next;
    }
    return p;
    }
    6、实际测试的Main函数
    static void Main(string[] args)
    {
    //测试链表的构造
    ListNode L = null;
    ListNode real = null;
    int i=0;
    int x=0;
    while (x!=999) {
    Console.WriteLine(“请输入一个数字(999结束):”);
    x = int.Parse(Console.ReadLine());//字符转为整型

                if (x!=999) {
                    CreatList2(ref L,ref real, x);
                } 
            }
            //按序号查找结点值
            while (i != 999) {
            Console.WriteLine("请输入序号查找节点:");
            i = int.Parse(Console.ReadLine());//字符转为整型
                Console.WriteLine("序号i的值:"+ GetElem(L, i).Value);    
            }
            Console.ReadLine();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    直播带货系统,乡村直播电商平台的新选择
    第十三章 实现组件库按需引入功能
    OA管理系统源码
    C++ 解决string转为char*中文乱码问题
    4-甲氧基三苯胺,CAS号:4316-51-2
    在excel内处理二进制和十六进制数据
    JVM-虚拟机的故障处理与调优案例分析
    Postman写接口文档
    YC-性能测试
    有关状压DP
  • 原文地址:https://blog.csdn.net/weixin_41883890/article/details/125487047