2017-04-21 11 views
-1

2つのシングルリンクリストが同一であるかどうかを調べたいと思います。 これらが同じ場合、プログラムは一致する文字を出力する必要があります。2つのシングルリンクリストが同一であるかどうかを確認しますか?

例: 雑音と歯石は、両方とも同じパターン "abcabc"を持つため、同じです。 ↔1 B↔2 C↔3

Iは、単一のリンクリストを使用する必要があります。

AAABBCbbaaaおよび11122322111は

一致文字同一です。

public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 
    System.out.print("Please enter a string:"); 
    String linked1=scanner.nextLine(); 
    System.out.println(); 
    System.out.print("Please enter another string:"); 
    String linked2=scanner.nextLine(); 

    SingleLinkedList SLL1 = new SingleLinkedList(); 
    SingleLinkedList SLL2 = new SingleLinkedList(); 


    for (int i = 0; i < linked1.length(); i++) { 
     char a=linked1.charAt(i); 
     a = Character.toLowerCase(a); 
     SLL1.addToEnd(a); 
    } 
    for (int i = 0; i < linked2.length(); i++) { 
     char a=linked2.charAt(i); 
     a = Character.toLowerCase(a); 
     SLL2.addToEnd(a); 
    } 


public class SingleLinkedList{ 

private Node head; 

public SingleLinkedList() 
{ 
    head = null; 
} 

public boolean isEmpty(){ 
    return head == null; 
} 
public void addToEnd(Object dataToAdd) 
{ 
    Node newNode = new Node(dataToAdd); 

    if(head == null) 
    { 
     head = newNode; 
    } 
    else 
    { 
     Node temp = head; 

     while(temp.getLink() != null) 
     { 
      temp = temp.getLink(); 
     } 

     temp.setLink(newNode); 
    } 
} 
public String display() 
{ 
    String output = ""; 

    Node temp = head; 

    while(temp != null) 
    { 
     output += temp.getData() + " "; 
     temp = temp.getLink(); 
    } 

    return output; 
} 

}

+0

これまでに何を試しましたか? –

+0

私は2つの一時的なリンクされたistを作成しようとしました、私はこのtempsに文字を削除すると思った。しかし、順序は重要です私はそれを正しく作ることはできません。 Doest work well –

+0

2つのリストを比較して平等のためにこれまでに何を試しましたか?私たちはあなたが遭遇する問題を手伝うことができますが、まず何かを試しなければなりません。 http://stackoverflow.com/help/on-topicを参照してください:「宿題の助けを求める質問には、問題を解決するためにこれまでに行った作業の概要と解決している問題の説明が含まれていなければなりません" –

答えて

0

あなたはそれを行うことができますが、それは退屈な仕事だと私は実際にコードを書くための力を持っていません。

は暗号化されていません))のシーケンスをエンコードする必要があります。

あなたのリストをコード化するのは簡単ですが、値を繰り返すことです。あなたが選んだ各値は、すでに遭遇した値のseqと照合する必要があります。

値がチェックseqに存在しない場合は、追加して続行します。

最後に、見つかった順に固有の値のseqが表示されます。

次に、あなたのseqの各要素について、あなたのチェックセット内の位置がどれかを見つけて、それらの位置の新しいseqを構築します。

あなたの両方のシーケンスでそれを繰り返すと、エンコードされたシーケンスと一致させることができます。

seqのindexOfメソッドを作成してプログラムを簡素化する必要があります。

+0

お返事ありがとうございます。私はあなたの方向を試してみるつもりです。 –