C#链表操作-创新互联

关于链表操作,在C#当中微软已经提供了一个LinkedList的数据结构,通过这个类提供的一系列方法就能够实现链表操作。

创新互联公司于2013年成立,是专业互联网技术服务公司,拥有项目做网站、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元巴彦淖尔做网站,已为上家服务,为巴彦淖尔各地企业和个人服务,联系电话:028-86922220

这里我提供一段代码,这是在论坛里面有人提问时给出的代码,它实现了自定义链表的操作(读者可以在此基础上进一步完善)。因为这段代码涉及一些C#技巧,所以贴出来给初学者学习C#提供一点参考。

实体类:

    /// 
    /// 学生类
    /// 
    public class Student
    {
        public string Name { get; set; }
        public int Age { get; set; }

        public Student(string name, int age)
        {
            this.Name = name;
            this.Age = age;
        }

        public override string ToString()
        {
            return "\r\n" + this.Name + ":年龄" + this.Age + "岁";
        }
    }

链表节点类:

    /// 
    /// 节点类
    /// 
    /// 泛型
    public class Node
    {
        public T Data { get; set; }
        public Node Next { get; set; }

        public Node(T data)
        {
            this.Data = data;
            this.Next = null;
        }

        /// 
        /// 附加节点
        /// 
        /// 新的节点
        public void Append(Node newNode)
        {
            //如果下一节点为null,则将新的节点指向下一节点
            if (this.Next == null)
            {
                this.Next = newNode;
            }
            //如果下一节点不为null,则直接附加到下一节点
            else
            {
                this.Next.Append(newNode);
            }
        }

        public override string ToString()
        {
            string output = this.Data.ToString();
            if (this.Next != null)
            {
                output += " " + this.Next.ToString();
            }
            return output;
        }
    }

链表类:

    /// 
    /// 链表类
    /// 
    /// 泛型
    public class LinkedList
    {
        Node headNode = null;//头节点

        /// 
        /// 追加节点方法
        /// 
        /// 
        public void Add(T data)
        {
            if (headNode == null)
            {
                headNode = new Node(data);
            }
            else
            {
                headNode.Append(new Node(data));
            }
        }

        /// 
        /// 索引器,通过索引获取节点
        /// 
        /// 
        /// 
        public T this[int index]
        {
            get
            {
                int temp = 0;
                Node node = headNode;

                while (node != null && temp <= index)
                {
                    if (temp == index)
                    {
                        return node.Data;
                    }
                    else
                    {
                        node = node.Next;
                    }
                    temp++;
                }
                return default(T);
            }
        }

        public override string ToString()
        {
            if (headNode != null)
            {
                return this.headNode.ToString();
            }
            return string.Empty;
        }
    }

主函数:

    class Program
    {
        static void Main(string[] args)
        {
            LinkedList intList = new LinkedList();
            Enumerable.Range(0, 5).ToList().ForEach(x => intList.Add(x));
            Console.WriteLine("整型的内容为:{0}\r\n", intList);

            LinkedList students = new LinkedList();
            students.Add(new Student("张三", 20));
            students.Add(new Student("李四", 22));
            students.Add(new Student("王五", 21));
            Console.WriteLine(students[1].Name + "的年龄为:" + students[1].Age);

            Console.ReadLine();
        }
    }

最后附录一下微软官方的链表类。https://msdn.microsoft.com/zh-cn/library/he2s3bh7(v=vs.110).aspx。

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


当前名称:C#链表操作-创新互联
文章位置:http://myzitong.com/article/heocd.html