打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
数据结构与算法C#语言描述 第11章,链表的完整代码
节点:Node
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SingleList
{
    class Node
    {
        public object Element;
        public Node Link;

        /// <summary>
        /// 空表
        /// </summary>
        public Node()
        {
            Element = null;
            Link = null;
        }

        /// <summary>
        /// 数据表
        /// </summary>
        /// <param name="theElement"></param>
        public Node(object theElement)
        {
            Element = theElement;
            Link = null;
        }
    }
}


单链表:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SingleList
{
    class LinkedList
    {
        protected Node header;

        /// <summary>
        /// 头引用
        /// </summary>
        public LinkedList()
        {
            header = new Node("header");
        }

        /// <summary>
        /// 找到某个数据在链表中的节点位置
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        private Node Find(Object item)
        {
            Node current = new Node();
            current = header;
            while (current.Element != item)
            {
                current = current.Link;
            }

            return current;

        }

        /// <summary>
        /// 链表插入
        /// </summary>
        /// <param name="newItem"></param>
        /// <param name="after"></param>
        public void Insert(Object newItem, Object after)
        {
            Node current = new Node();
            Node newNode = new Node(newItem);

            current = Find(after);
            newNode.Link = current.Link;
            current.Link = newNode;
        }


        /// <summary>
        /// 找到数据n前面的链表节点
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        private Node FindPrevious(Object n)
        {
            Node current = header;
            while (!(current.Link == null) && (current.Link.Element != n))
            {
                current = current.Link;
            }
            return current;
        }

        /// <summary>
        /// 删除某个节点
        /// </summary>
        /// <param name="n"></param>
        public void Remove(Object n)
        {
            Node p = FindPrevious(n);
            if (!(p.Link == null))
            {
                p.Link = p.Link.Link;
            }
        }

        /// <summary>
        /// 打印节点数据
        /// </summary>
        public void PrintList()
        {
            Node current = new Node();
            current = header;
            while (!(current.Link == null))
            {
                Console.WriteLine(current.Link.Element);
                current = current.Link;
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SingleList
{
    class Program
    {
        static void Main(string[] args)
        {
            LinkedList Ld = new LinkedList();

            Ld.Insert("Zou", "header");
            Ld.Insert("Yong", "Zou");
            Ld.Insert("Love", "Yong");
            Ld.PrintList();

            Ld.Remove("Love");
            Ld.PrintList();

            Console.ReadKey();
        }
    }
}






本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
asp.net常用javascript封装代码
如何使 WebAPI 自动生成漂亮又实用在线API文档
网页消息类
asp.net如何操作Session
数据结构与算法:15 树
.NET使用FastDBF读写DBF
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服