2017-02-12 3 views
0

Java API Linked Listクラスを使用していないJavaでリンクリストを作成しています。これは、多項式を表示し、リンクされたリストにデータを格納するための計算機を作成しています。多項式は、リストの先頭に追加され、サイズ順に表示されます(ただし、これはまだ動作しません)。私が苦労しているのは、addTermメソッドです。これはリストを反復してリストの先頭に追加することになっています。私はJavaには新しいものではありませんが、基本的な知識しかありません。誰かがそれを助けることができればそれは非常に高く評価されるだろうイテレータJavaリンクリスト

import java.util.Iterator; 

import javax.xml.soap.Node; 

public class PolyData implements Polynomial { 

private static class Node{ 

    Node next; 
    public Term term; 

} 
private static Node head; 

public Iterator<Term> iterator() { 
    // TODO Auto-generated method stub 
    return new LinkedList(head); 
    } 

public static void insertAtHead(Term term) { 

    Node newNode = new Node(); 
    newNode.term = term; 
    newNode.next = head; 
    head = newNode; 
} 

public static void insertAfter(Term term, Node insertPoint) { 
    Node newNode = new Node(); 
    newNode.term = term; 
    newNode.next = insertPoint.next; 
    insertPoint.next = newNode; 
} 

@Override 
public void addTerm(Term term) { 
    Iterator<Term> iter = LinkedList.iterator(); 
    while (iter.hasNext()) { 
     Node newNode = new Node(); 
     newNode.term = term; 
     newNode.next = head; 
     head = newNode; 
    } 
} 





public void addPoly(Polynomial poly) { 
    //not implemented 
} 

@Override 
public void multiplyByPoly(Polynomial poly) { 
    //not implemented 
} 





public static class LinkedList implements Iterator<Term> { 

    private Node current; 
    private LinkedList(Node start) {current=start;} 

    public static Iterator<Term> iterator() { 
     // TODO Auto-generated method stub 
     return new LinkedList(head); 
     } 



    @Override 
    public boolean hasNext() {return (current != null);} 

    @Override 
    public Term next() { 
      Term result = current.term; 
      current = current.next; 
      return result; 
    } 
    @Override 
    public void remove() { 
      throw new UnsupportedOperationException("Not supported"); 
    } 


} 

    @Override 
    public void clear() { 
     // TODO Auto-generated method stub 

    } 


} 
+0

のpublic staticイテレータイテレータを挿入したときに(){ // TODO自動生成されたメソッドスタブが新しい​​LinkedListの(頭を)返し 。 }頭の宣言はどこですか? – efekctive

+0

@efekctiveそのプライベートスタティックノードヘッド。 –

+0

静的であってはいけません。それ以外の場合は、すべてのリストで共有されます。第二にあなたが投稿するコードはコンパイルするか、すべての部分を見るべきである – efekctive

答えて

0
@Override 
public void addTerm(Term term) { 
    Iterator<Term> iter = LinkedList.iterator(); 
    while (iter.hasNext()) { 
     Node newNode = new Node(); 
     newNode.term = term; 
     newNode.next = head; 
     head = newNode; 
    } 
} 

多項式である場合、X^2 + X + 1次に、すべての用語を挿入した後、それは

X^2(ヘッド)で終わるであろう+ X(最初の挿入は、リスト内の1つの要素を有しています)+ 2(あなたは1、それが二回挿入されているので、リスト内の2つの要素がある)

関連する問題