添加已排序的链接列表

时间:2018-03-29 22:21:02

标签: java linked-list singly-linked-list

所以我正在为存储整数的Sorted LinkedList编写代码。添加时,整数必须按升序存储。我的Node类代码有两个值和构造函数,这里没有写,因为它们很明显。

tail logfile | grep successful! 
RESULT=$?
exit $RESULT

我的部分排序链接列表代码是

public class Node {
int value;
Node next;
}

所以当我测试我的代码并添加数字1,81,63,7,8,9,23时,我的输出是

  

添加了数据1的节点。添加了带有数据81的节点。        添加了具有数据63的节点。        添加了具有数据7的节点。        添加了具有数据8的节点。        添加了具有数据9的节点。        添加了具有数据23的节点。        1 - > 81 - > 23 END列表计数为7

所以你可以看到,当我尝试显示链表时,它只有1指向81,指向23.所有其他值丢失。 我使用此代码获取输出:

public class SortedList {

Node head;
public int listCount;


public SortedList(){
    listCount = 0;
    this.head=null;

}



public void add(int num){
    Node newNode= new Node(num);
    Node temp=head;

    if (head==null) {
        head=newNode;
        listCount++;
        System.out.println("Node with data "+num+" was added.");
    }
     else {
        while ((temp.value < num) && (temp.next!=null)) {
            temp = temp.next;
        }
        if (temp.next==null){
            temp.next=newNode;
            listCount++;
            System.out.println("Node with data "+num+" was added.");
        }
        else {
            newNode.next=temp.next.next;
            temp.next=newNode;
            listCount++;
            System.out.println("Node with data "+num+" was added.");
        }


    }

}

2 个答案:

答案 0 :(得分:0)

您的实施中存在两个问题。第一个是导致值丢失。这个问题在于作业 -

import pandas as pd
import numpy as np
a = Signal('name')
b = Signal('name2')
c = Signal('something')

data = {
    ('A', a): np.arange(2),
    ('A', b): np.ones(2),
    ('B', c): np.zeros(2)
}

df = pd.DataFrame(data)

print(df, df['A'], sep='\n\n')

     A               B
  name name2 something
0    0   1.0       0.0
1    1   1.0       0.0

   name  name2
0     0    1.0
1     1    1.0

将其更改为 -

newNode.next=temp.next.next;

第二个是您的newNode.next=temp.next; 条件检查 -

while

这将破坏已排序的订单。将其更改为 -

(temp.value < num) && (temp.next!=null)

答案 1 :(得分:0)

你在这一行中犯了一个拼写错误:

newNode.next=temp.next.next;

请将其更改为:

newNode.next=temp.next;