2017-04-21 25 views
0

私は非常に扱いにくく疑問があります。私はJavaでLinklistを実装しています。 とDisplay()が呼び出された後でも機能するものは、を印刷していないです。この関数はLinklistクラスにありますが、関数を呼び出すと何も起こりません。 System.out.println( "表示")行も機能しません。LinkList実装で呼び出した後に関数が実行されていない

(両方addLinks()display()方法で)終わることがないループがあるので、それは何かを印刷する機会を得ることはありませんので、だ
//Link class 
class Link 
{ 
    String name; 
    Link next; 
    Link(String name) 
     { 
     this.name=name; 
     next = null; 
     } 
} 
//Linklist class 
class Linklist 
{ 
    Link first; 
    Linklist() 
     { 
     first=null; 
     } 

public void addLinks(String name) 
{ 
    Link search=first; 
    if(first==null) 
    { 
     Link head = new Link(name); 
     first=head; 
    } 
    else 
    { 

     while(search.next!=null) 
     { 
     search.next=search; 
     } 
     Link newlink = new Link(name); 
     search.next = newlink; 
    } 
} 
//This function is not working properly. 
public void display() 
{ 

    System.out.println("Display"); 
    Link search=first; 

    while(search.next==null) 
    { 
     System.out.println(search.name); 
     search.next=search; 
    } 
} 
} 

public class p1 { 

public static void main(String args[]) 
{ 
    Linklist ls = new Linklist(); 
    ls.addLinks("Kanha"); 
    ls.addLinks("lal"); 
    ls.addLinks("Mishra"); 
    ls.display(); 
} 

} 
+0

いかなる例外も...?任意のノードを追加する前にls.display()を呼び出そうとしてください。それが動作するかどうかを確認する.. ?? –

答えて

1

while(search.next!=null) 
{ 
    search.next=search; 
} 

おそらく

search = search.next; 
を書くことを意味し

display()のwhileループの条件は、

の代わりに0にする必要があります。
while(search.next==null) 

search.next != null 

(しかし、あなたが前に最初の要素の内容を印刷する必要があります...)

+0

ありがとう!両方とも訂正され、機能しました。 –

+0

@KanhaiyaMishra、問題ありません。自由に回答を受け入れるようにしてください。あなたの質問は未回答です。 (あなたはポイントを得るでしょう!) – radoh

+0

確かに、私は新しいので、そのことを知っていない、あなたの答えを受け入れたbtw。 :) –

関連する問題