Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 您如何实施;加上「;单链表的方法?_Java - Fatal编程技术网

Java 您如何实施;加上「;单链表的方法?

Java 您如何实施;加上「;单链表的方法?,java,Java,下面是类标题及其字段: public class SinglyLinkedList <E> implements MiniList <E> { protected Entry <E> head = null; private int size = 0; 所以这个问题非常简单,我对非随机访问数据结构非常陌生。有人能帮我解决上面的问题吗?我需要一个基本的基础,所以我可以继续实验室的其余部分。< /P> < P>我假设Advices方法将元素添加

下面是类标题及其字段:

public class SinglyLinkedList <E> implements MiniList <E> 
{
   protected Entry <E> head = null;

   private int size = 0; 

所以这个问题非常简单,我对非随机访问数据结构非常陌生。有人能帮我解决上面的问题吗?我需要一个基本的基础,所以我可以继续实验室的其余部分。< /P> < P>我假设Advices方法将元素添加到列表中?你试过什么

您必须处理两种情况:

  • 当列表为空时
  • 当列表不为空时

  • 考虑在这两种情况下需要做什么。

    最初,您的成员数据设置为空。如果这是一个需求(而不是最初分配),则需要在add()方法中检查它,并在必要时分配它:

    if ( head == null )
    {
        head = new Entry<E>();
        head.element = element;
    }
    
    if(head==null)
    {
    head=新条目();
    head.element=元素;
    }
    
    如果head不为null,则必须分配一个新条目,并允许现有数据通过新数据引用而保留为列表的一部分:

    else
    {
        Entry<E> new_entry = new Entry<E>();
        new_entry.element = element;
        new_entry.next = head;
        head = new_entry;
    }
    
    else
    {
    Entry new_Entry=新条目();
    new_entry.element=元素;
    new_entry.next=头部;
    head=新的_条目;
    }
    
    链接列表的工作原理如下:

    你有一个头部节点,这有一个对下一个节点的引用,这有一个对下一个节点的引用,等等。这是我刚才画的一个图:

    头部有对以下节点的引用,但其中也有数据。如果我创建一个字符串的链表

    LinkedList<String> groceryList = new LinkedList<String>();
    groceryList.add("VEGGIES");
    groceryList.add("FRUITS");
    
    这将给我们最后一个条目。然后为了添加另一个元素,我们只需将最后一个对象的引用设置为要添加的条目


    这就是它工作原理的要点。现在,您只需根据“Entry”对象的内容来实现它。

    您只是将任务交给了我们,而没有要求解决您的问题?也许尝试一下,如果你失败了,问一个关于失败尝试的具体问题?(编辑:这条评论发表后,这个问题被天真地编辑了一下)。这看起来是错误的。只是说说而已。如果列表是空的,这是对的。在线单链表有很多例子可以帮助你建立一个坚实的基础。甚至在Java中,也有几个会跳到搜索结果的顶部。试试看,把你的进展公布出来。让我们知道你有什么特别的问题,你可能会得到更多的支持。else条款是错误的。我不确定你会如何假设E,一个泛型类型,有一个元素属性。E没有元素属性。是的。条目不是E。尽管再次查看它,但它确实需要修改。必须为新数据分配一个新条目()。这就是我不使用编译器所得到的。@VisionarySoftwareSolutions现在可以工作了。
    LinkedList<String> groceryList = new LinkedList<String>();
    groceryList.add("VEGGIES");
    groceryList.add("FRUITS");
    
    //Some Pseudo Code
    Entry current = head;
    Entry last = null;
    while(Not Done Looping)
    {
        Entry temp = current.getNext();
        if(temp is not null) //We have a reference to another element
        {
            //We have more list to see
            current = temp;
        }
        else
            last = current;
    }