2011-09-16 16 views
2

私のクラスでは、算術演算を行うNumberクラスを作成するという課題があります。 (加算/減算/乗算など)二重リンクリストの混乱

私は混乱している部分があります。それについて議論している唯一の部分は、少し混乱していることがわかります。私は何を保管するべきか分からない - すべての数字が入力されている?それは高位の数字のノードに高いポイントを言う...私はそれが何を意味するのか分からない。また、私は二重リンクリストをどのように実装するのか正確にはわかりません...次の「高位桁」への参照を持っていますか? Nodeとは割り当てによっては、class Numberを作成するとしか書かれていませんが、Java APIのNodeはHTMLタグと関係があると言いますか? Number low, highを使うべきではありませんか?ここで

は、二重リンクリストの一部を詳述仕様の一部です:

数字は(ここではジェネリックを使用していない)二重リンクリストに保存されます。各ノードは に1桁(0〜9)を保持するint値フィールドと2つのポインタフィールド、 prevとnextを持ちます。

The Number class will have five fields: 

private Node low, high; 
private int digitCount = 0; 
private int decimalPlaces = 0; 
private boolean negative = false; 

上位桁のノードに高い点、 下位桁のノードに低い点、 digitCountがリストに格納された桁数であり、 decimalPlaces桁(ノード)の数であります小数点以下は 、負の場合は符号が付きます。

私は正確な解決策を求めているわけではなく、ちょっとした指導と理解を求めています。私は与えられた助けを本当に感謝します。

答えて

1

このコンテキスト内のノードは、リンクされたリストの要素です。

あなたは、各ノードが1桁が含まれているリンクリスト、として番号を表すことになっているように思え

..

だから数

12.34

は、その中に4つのノードを持つことになります1、2、3、4のそれぞれに1つずつ入力します。小数点の前後にそれぞれ2桁あるため、NumberにはdigitCountが2、decimalPlaceには2が設定されます。

あなたのリンクリストは<->は、リンクリストの二重にリンクされた性質を表し

1 <-> 2 <-> 3 <-> 4

のようになります。おそらく1 <からのポインタがあるはずです(両方とも以前と次のノードのためのポインタを。) - >リストが円形であると想定されている場合は、4も同様です。

あなたNumberクラスの概要については、お使いのDigitNodeクラスの概要を/プライベート保護され、セッター/ゲッターのようなもののようなものを無視して

public class DigitNode { 
    int digit; 
    DigitNode next; 
    DigitNode prev; 
} 

イムようになり

public class MyNumber { 
    DigitNode low; 
    DigitNode high; 
    int digitCount; 
    int decimalPlaces; 
    bool negative; 
} 

ようになります。 lowプロパティを取得し、 'next'プロパティを取得し、nextがヌルになるまでループすることで、数字の繰り返し処理を行うことができるようになりました。

+0

Nodeクラスを実装するはずですか?またはNodeは実際にNumberへの参照ですか? – Cody

+1

@doctor、コード概要で更新しました。これはあなたを始めるが、あなたはまだ難しいことをしなければならない。 'Number' * class *はリンクされたリストを使ってその数字を表します。各数字は' Node'にあります。 – hvgotcodes

+0

Perfect。どうもありがとうございました!これは非常に役に立ちます。 – Cody

1

桁があなたの仕様から、このテキストに基づいて、ノードであるように見えます:

...the number of digits (nodes) after the... 

高順、この文脈では、10の次のパワーを意味すると思われるので、次に大きな数字、そして低い次数は反対であるように思われるので、次に低い数字になります。

関連する問題