zoukankan      html  css  js  c++  java
  • C#数据结构之单向链表

    链表定义:

    public class Node
        {
            public object Element;
            //要把链接指向下一个节点,使用索引来做这个链接,需要把链接设置为Node类型
            public Node Link;
    
            public Node()
            {
                Element = null;
                Link = null;
            }
    
            public Node(object theElement)
            {
                Element = theElement;
                Link = null;
            }
        }

    链表操作类:

    public class LinkedList
        {
            //头结点
            protected Node Header;
    
            public LinkedList()
            {
                Header = new Node("header");
            }
    
            private Node Find(object item)
            {
                Node current = new Node();
                current = Header;
                while (current.Element != item)
                {
                    current = current.Link;
                }
                return current;
            }
    
            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;
            }
    
            //遍历链表,停在每个节点处查看下一个节点的element字段是否有需要移除的数据项
            private Node FindPrevious(object n)
            {
                Node current = Header;
                while (!(current.Link == null) && (current.Link.Element != n))
                {
                    current = current.Link;
                }
                return current;
            }
    
            public void Remove(object n)
            {
                Node p = FindPrevious(n);
                if (!(p.Link == null))
                {
                    p.Link = p.Link.Link;
                }
            }
    
            public void PrintList()
            {
                Node current = new Node();
                current = Header;
                while (!(current.Link == null))
                {
                    Console.WriteLine(current.Link.Element);
                    current = current.Link;
                }
            }
        }
  • 相关阅读:
    工作中,怎么做好规范
    每日一链
    模仿电子商务垂直菜单
    电脑不同的分辨率自适应显示
    怎样成为一位合格的程序员
    巅峰极客线上第一场ctf——RE
    恶意代码分析常见Windows函数
    巅峰极客线上第二场部分ctf
    恶意代码分析:虚拟网络环境配置
    0ctf2017 pwn babyheap
  • 原文地址:https://www.cnblogs.com/pengdotnet/p/2971000.html
Copyright © 2011-2022 走看看