C# 在C中的LinkedList中填写一些方法#

C# 在C中的LinkedList中填写一些方法#,c#,C#,你好,请我有一个家庭作业,我在网上搜索了所有的东西,我找不到任何解决办法,请我需要一个人来帮我做这个家庭作业。 这是一节课 public class LinkedList { public Node head; public int size; public LinkedList() { head = null; size = 0; } public void Append(student d) {

你好,请我有一个家庭作业,我在网上搜索了所有的东西,我找不到任何解决办法,请我需要一个人来帮我做这个家庭作业。 这是一节课

public class LinkedList
{
    public Node head;
    public int size;

    public LinkedList()
    {
        head = null;
        size = 0;
    }

    public void Append(student d)
    {
        // FILL THIS METHOD
    }

    public Node Remove()
    {
        // FILL THIS METHOD
    }

    public Node Search(int key)
    {
        // FILL THIS METHOD
    }

    public Node SearchPrevious(int key)
    {
        // FILL THIS METHOD
    }

    public void Insert(student s, int previousKey)
    {
        // FILL THIS METHOD
    }

    public void Delete(int key)
    {
        // FILL THIS METHOD
    }

    public void PrintLinkedList()
    {
        // FILL THIS METHOD
    }
这是另外两门课

public class Node
{
    public student data;
    public Node link;

    public Node()
    {
        data = null;
        link = null;
    }

    public Node(student s, Node p)
    {
        data = s;
        link = p;
    }
这两个人和班级

  public class student
{
    public int TNumber;
    public string Name;
    public string Advisor;
    public student(int t, string n, string a)
    {
        TNumber = t;
        Name = n;
        Advisor = a;
    }
}

我现在把这当作一个家庭作业,但我发现stackoverflow是我的最后一个解决方案。请帮帮我,我会帮你解决第一个问题:

public class LinkedList
{
    public Node head;
    public int size;

    public LinkedList()
    {
        head = null;
        size = 0;
    }

    public void Append(student d)
    {
        // FILL THIS METHOD
    }
首先让我说这个结构真的很奇怪-所有的东西都联系在一起一团糟(我想也许你的老师应该认真考虑他/她的设计决定)-但是我想我们必须这样做

因为你只有一个
学生d
你只能用它创建一个新的节点,因此你需要它的
链接
这个值并不难-是学生的问题,但节点更难-你必须先找到列表的末尾,所以让我们用一个简单的循环来实现这一点:

public class LinkedList
{
   // ...
   public Node FindTail ()
   {
       var tail = head;
       while (tail != null && tail.link != null)
           tail = tail.link;
       return tail;
   }
好-使用此附加并不困难:

    public void Append(student d)
    {
        var oldTail = FindTail();
        var newTail = new Node(d, oldTail);
        if (oldTail == null)
           head = newTail;
        else
           oldTail.link = newTail;

        // oh wait there is something missing here
        // hint: I ignored the size ... you should do something
        // about it
    }
就这样-这应该是正确的,你应该能够自己解决其余的问题


不要忘记设置大小

如果这是一个家庭作业,您应该自己做,以便更好地了解什么是
LinkedList
数据结构,它是如何工作的,在什么情况下您应该在实际项目中使用它等等。。。试着自己去做,如果你在某个特定的问题上陷入困境,那么回到SO并问一个问题。你尝试了什么?你不明白的是什么?既然你已经给了我们一个问题,为什么不把你到目前为止得到的东西加进去呢。现在看来你甚至都没有做任何努力。
我在互联网上搜索了所有内容,但找不到任何解决方案
是的,这是一个非常独特的家庭作业…伙计们,问家庭作业问题没什么错-通常你一开始不会100%回答,但没有理由拒绝帮助我完成其他的请。对不起-如果你告诉我你尝试了什么,失败了什么,我会帮你,但我不会完成你的家庭作业