链接列表删除项目

时间:2014-11-10 19:26:49

标签: c#

我必须使用' RemoveItem'从我的列表中删除一个项目。方法。但是,我有点卡住,任何人都可以给我一个正确的方向:D

任何帮助都将受到高度赞赏

主:

class Program
{
    static void Main(string[] args)
    {
        LinkList testList = new LinkList();

        testList.AddItem(5);
        testList.AddItem(10);
        testList.AddItem(12);
        testList.AddItem(14);
        testList.DisplayItems();
        Console.WriteLine(testlist.RemoveItem(5));/// remove the item 5 from list

        Console.ReadKey();
    }
}

链接类:

class Link
{
    private int data;
    private Link next;

    public Link(int item) //constructor with an item
    {
        data = item;
        next = null;
    }
    public Link(int item, Link list) //constructor with item and list
    {
        data = item;
        next = list;
    }

    public int Data //property for data
    {
        set { this.data = value; }
        get { return this.data; }
    }

    public Link Next //property for next
    {
        set { this.next = value; }
        get { return this.next; }
    }

  }
}

linklist class:

 class LinkList
    {
        private Link list = null; //default value – empty list

        public void AddItem(int item) //add item to front of list
        {
            list = new Link(item, list);
        }

        public void RemoveItem(int item)// remove chosen item from list
        {
            Link temp = list;
            while (temp != null)
            {
               //
            }

        public void DisplayItems() // Displays items in list
        {
        Link temp = list;
        while (temp != null)
        {
            Console.WriteLine(temp.Data);
            temp = temp.Next;
        }

    }

1 个答案:

答案 0 :(得分:2)

有两种方法:

  • 取值并删除它
  • 只需删除它

首先确定你需要的东西。

用自己的文字描述想法。删除项目是什么意思?

  • 查找项目
  • 删除项目
  • 正确的链接:删除项目之前的项目必须与删除后的项目链接

实施例

A->B->C->D->E

删除C:找到C,在B和D之间建立链接

A->B->D->E

在尝试连接节点之前,首先检查它们是否存在:)