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;
大小=