Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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<T> implements GenericLinkedList<T> { private Node<T> head; private Node<T> tail; private int size; public S

您好,我正在实现一个单链接列表,而不使用库列表。我遇到了在列表末尾添加元素的问题。谁能帮帮我吗。这是我的密码:

public class SinglyLinkedList<T> implements GenericLinkedList<T> {
        private Node<T> head;
        private Node<T> tail;
        private int size;

        public SinglyLinkedList() {
            head = null;
            tail = null;
            size = 0;
                }
            public void addLast(T elem) {
            tail.next.element  = elem;
            size++;
        }

**public void addLast(T elem) {
            Node<T> newNode = new Node<T>();
            tail.next = null;
            newNode.element = elem;

        **
公共类SingleLinkedList实现GenericLinkedList{
专用节点头;
私有节点尾部;
私有整数大小;
公共单链接列表(){
head=null;
tail=null;
尺寸=0;
}
公共无效添加最后一个(T元素){
tail.next.element=elem;
大小++;
}
**公共无效添加最后一个(T元素){
Node newNode=新节点();
tail.next=null;
newNode.element=elem;
**

< /代码> 您指定尾部的下一个元素,但您也应该考虑插入的元素本身成为新的尾部。
  • 创建一个新节点
  • 将元素存储在其上
  • 使尾部指向该节点。(然后,当前尾部成为
    nth-1
    元素)
  • 使新插入的元素成为新的尾部
  • 增加列表的大小

  • 你当前的问题也与步骤1和3有关。你不定义一个<代码>节点< /Cord>对象来存储和<代码>尾。如果它真的是列表的尾部,下一个应该是NULL。

    < P>你指定尾的下一个元素,但是你也应该考虑插入的元素本身就是新的尾。
  • 创建一个新节点
  • 将元素存储在其上
  • 使尾部指向该节点。(然后,当前尾部成为
    nth-1
    元素)
  • 使新插入的元素成为新的尾部
  • 增加列表的大小

  • 你当前的问题也与步骤1和3有关。你不定义一个<代码>节点< /Cord>对象来存储和<代码>尾。如果它真的是列表的尾部,下一个应该是NULL。

    < P>你指定尾的下一个元素,但是你也应该考虑插入的元素本身就是新的尾。
  • 创建一个新节点
  • 将元素存储在其上
  • 使尾部指向该节点。(然后,当前尾部成为
    nth-1
    元素)
  • 使新插入的元素成为新的尾部
  • 增加列表的大小

  • 你当前的问题也与步骤1和3有关。你不定义一个<代码>节点< /Cord>对象来存储和<代码>尾。如果它真的是列表的尾部,下一个应该是NULL。

    < P>你指定尾的下一个元素,但是你也应该考虑插入的元素本身就是新的尾。
  • 创建一个新节点
  • 将元素存储在其上
  • 使尾部指向该节点。(然后,当前尾部成为
    nth-1
    元素)
  • 使新插入的元素成为新的尾部
  • 增加列表的大小

  • 您当前的问题也与步骤1和3有关。您没有定义要存储的
    节点
    对象和
    尾部。如果它确实是列表的尾部,则下一个
    应该为空。

    以下是SingleLinkedList的完整代码。
    单链接列表

    public class SinglyLinkedList<T> {
        private Node<T> head;
        private Node<T> tail;
        private Node<T> temp;
        private int size;
    
        public SinglyLinkedList() {
            head = null;
            tail = null;
            size = 0;
        }
    
        public void addLast(T elem) {
            if(head == null){
                head = new Node<T>();
                head.element = elem;
                tail = head;
                size++;
            } else  {
                temp = new Node<T>();
                temp.element = elem;
                tail.next = temp;
                temp.prev = tail;
                tail = temp;
                size++;
            }  
    
        }
        void print(){
            temp = head;
            while(temp  != null){
                System.out.println(temp.element);
                temp = temp.next;
            }
        }
        public static void main(String[] args) {
            SinglyLinkedList<Integer> list = new SinglyLinkedList<>();
            list.addLast(1);
            list.addLast(2);
            list.addLast(3);
            list.addLast(4);
            list.addLast(5);
            list.addLast(6);
            list.print();
    
        }
    }
    
    公共类单链接列表{
    专用节点头;
    私有节点尾部;
    专用节点温度;
    私有整数大小;
    公共单链接列表(){
    head=null;
    tail=null;
    尺寸=0;
    }
    公共无效添加最后一个(T元素){
    if(head==null){
    头=新节点();
    head.element=elem;
    尾=头;
    大小++;
    }否则{
    temp=新节点();
    温度元素=元素;
    tail.next=温度;
    前温度=尾部;
    尾=温度;
    大小++;
    }  
    }
    作废打印(){
    温度=水头;
    while(temp!=null){
    系统输出打印LN(温度元件);
    温度=下一个温度;
    }
    }
    公共静态void main(字符串[]args){
    SinglyLinkedList=新建SinglyLinkedList();
    列表。addLast(1);
    列表。addLast(2);
    列表。addLast(3);
    列表。addLast(4);
    列表。addLast(5);
    列表。addLast(6);
    list.print();
    }
    }
    
    节点

    public class Node<T>{
        Node<T> prev;
        Node<T> next;
        T element;
        public Node() {
        }
    }
    
    公共类节点{
    节点前置;
    节点下一步;
    T元素;
    公共节点(){
    }
    }
    
    这是SingleLinkedList的完整代码。
    单链接列表

    public class SinglyLinkedList<T> {
        private Node<T> head;
        private Node<T> tail;
        private Node<T> temp;
        private int size;
    
        public SinglyLinkedList() {
            head = null;
            tail = null;
            size = 0;
        }
    
        public void addLast(T elem) {
            if(head == null){
                head = new Node<T>();
                head.element = elem;
                tail = head;
                size++;
            } else  {
                temp = new Node<T>();
                temp.element = elem;
                tail.next = temp;
                temp.prev = tail;
                tail = temp;
                size++;
            }  
    
        }
        void print(){
            temp = head;
            while(temp  != null){
                System.out.println(temp.element);
                temp = temp.next;
            }
        }
        public static void main(String[] args) {
            SinglyLinkedList<Integer> list = new SinglyLinkedList<>();
            list.addLast(1);
            list.addLast(2);
            list.addLast(3);
            list.addLast(4);
            list.addLast(5);
            list.addLast(6);
            list.print();
    
        }
    }
    
    公共类单链接列表{
    专用节点头;
    私有节点尾部;
    专用节点温度;
    私有整数大小;
    公共单链接列表(){
    head=null;
    tail=null;
    尺寸=0;
    }
    公共无效添加最后一个(T元素){
    if(head==null){
    头=新节点();
    head.element=elem;
    尾=头;
    大小++;
    }否则{
    temp=新节点();
    温度元素=元素;
    tail.next=温度;
    前温度=尾部;
    尾=温度;
    大小++;
    }  
    }
    作废打印(){
    温度=水头;
    while(temp!=null){
    系统输出打印LN(温度元件);
    温度=下一个温度;
    }
    }
    公共静态void main(字符串[]args){
    SinglyLinkedList=新建SinglyLinkedList();
    列表。addLast(1);
    列表。addLast(2);
    列表。addLast(3);
    列表。addLast(4);
    列表。addLast(5);
    列表。addLast(6);
    list.print();
    }
    }
    
    节点

    public class Node<T>{
        Node<T> prev;
        Node<T> next;
        T element;
        public Node() {
        }
    }
    
    公共类节点{
    节点前置;
    节点下一步;
    T元素;
    公共节点(){
    }
    }
    
    这是SingleLinkedList的完整代码。
    单链接列表

    public class SinglyLinkedList<T> {
        private Node<T> head;
        private Node<T> tail;
        private Node<T> temp;
        private int size;
    
        public SinglyLinkedList() {
            head = null;
            tail = null;
            size = 0;
        }
    
        public void addLast(T elem) {
            if(head == null){
                head = new Node<T>();
                head.element = elem;
                tail = head;
                size++;
            } else  {
                temp = new Node<T>();
                temp.element = elem;
                tail.next = temp;
                temp.prev = tail;
                tail = temp;
                size++;
            }  
    
        }
        void print(){
            temp = head;
            while(temp  != null){
                System.out.println(temp.element);
                temp = temp.next;
            }
        }
        public static void main(String[] args) {
            SinglyLinkedList<Integer> list = new SinglyLinkedList<>();
            list.addLast(1);
            list.addLast(2);
            list.addLast(3);
            list.addLast(4);
            list.addLast(5);
            list.addLast(6);
            list.print();
    
        }
    }
    
    公共类单链接列表{
    专用节点头;
    私有节点尾部;
    专用节点温度;
    私有整数大小;
    公共单链接列表(){
    head=null;
    tail=null;
    大小=