2014-03-30 28 views
0

我有問題將鍵盤中鍵入的數據存儲到我的鏈接列表添加方法。這個程序的重點是使用鏈表實現一個隊列。唯一的是,類構造函數接受列表中每個節點的兩個參數(它們的名稱和鏈接)。鏈接列表對象不存儲空白鏈接列表中的字符串輸入

這裏是我的類文件,那麼遠,

public class linklist_MP 
{ 
//Private intance variables and links 
    private linklist_MP front; 
    private linklist_MP rear; 
    private linklist_MP link; 
    private linklist_MP previous; 
    private String data; 
    private int count = 0; 
    private boolean flag; 



//Construtor for Each Node's link and parameter type 
    public linklist_MP(String input, linklist_MP intiallink) 
    { 
    data = input; 
    link = intiallink; 

    } 

public boolean listEmpty() 
{ 
    flag = false; 

    if(count == 0) 
    { 
    flag = true; 
    } 

    return flag; 
} 

public void addList(String input) 
{ 
    //Creating new node with read input 
    //linklist_MP node = new linklist_MP(input, null); 

    if(count == 0) 
    { 
     front = new linklist_MP(input, front); 
    } 
    else 
    { 
    previous = front; 

    while(previous.link != null) 
    { 
     previous = previous.link; 
    } 

    rear = previous; 

    rear.link = new linklist_MP(input, null); 

    } 


    count++; 

} 

public String toString() 
{ 
    String result = data + " "; 
    if (link != null) 
    { 
     result += link.toString(); 
    } 
    return result; 
} 
} 

,這裏是我的驅動程序文件,這使得我的類,並存儲在用戶數據的對象..

import java.io.*; 
import java.util.Scanner; 
import java.util.StringTokenizer; 

public class linklistDriver_MP 
{ 
public static void main(String[] args) 
{ 

    String input; 

    Scanner keyboard = new Scanner(System.in); 


    System.out.println("Just add a String: "); 
    input = keyboard.nextLine(); 


    linklist_MP object = new linklist_MP(input, null); 

    object.addList(input); 

    System.out.println("Add another String: "); 
    input = keyboard.nextLine(); 

    object.addList(input); 

    System.out.println("\nTime to print the list out: "); 
    object.toString(); 
} 
} 

基本上當我在驅動程序文件中調用打印方法以打印鏈接列表中的所有節點時,什麼也不出來,並且列表打印爲空白。我想弄清楚爲什麼這是因爲我用我的驅動程序中的對象添加用戶在鍵盤中輸入的兩個字符串,因爲調用add方法......先謝謝了!

+0

您的鏈接列表類已經全部重新開始,您應該徹底重新開始。您需要查看如何實現LinkedList。對於這一行絕對沒有意義:'front = new linklist_MP(input,front);'。 'front'爲null,所以你只需在'front'節點中將「initiallink」設置爲null即可。我不知道這應該是什麼意思,但我確定這不是你想要的。 – Jared

+0

哈哈感謝您的輸入。但是該行:'front = new linklist_MP(input,front);'是標識第一個節點,因爲它指向鏈表中最後一個節點鏈接爲null的鏈表。至少這就是我所要做的,因爲我只能添加到列表的後面。 – MannyFreshx

+0

我瞭解'前面'和'後面'是否是_supposed_。我不明白的是爲什麼你把'link'作爲一個字段。就像我說的,當你調用'new linklist_MP(input,front);','front'是'null',因此它將''''link''設置爲'null'。 – Jared

回答

1

你的程序不輸出任何東西的原因是因爲你調用方法toString(),但你永遠不會打印這個方法的輸出。

但它看起來好像您的鏈接列表結構也是關閉的。本質上,鏈表數據結構由一段數據和一個到序列中下一個節點的鏈接組成。

但是,您的節點中已鏈接了多個其他節點。你應該儘量簡化你的設計,因爲鏈表是一個非常簡單的數據結構,但我認爲你已經過於複雜。

+0

。說這個過於複雜就是輕描淡寫(抱歉評論Manny,但我認爲,什麼是評論,對吧?)。 – Jared

+0

哈哈,好評如潮,我的朋友和你只是在這裏誠實。但認真的賈裏德,感謝你的坦誠誠實!大聲笑我需要它,所以這樣的問題不會再出現! – MannyFreshx

+0

我同意你的觀點凱爾我肯定在這裏複雜的事情。 – MannyFreshx