0

私は C++ に関しては世界で最も基本的な人であり、皆さんが私を助けてくれるかどうか疑問に思っていました。istream に読み込まれたノードで並べ替えを実行しようとしていますが、AS が読み込まれています。Web 上のコードは非常に複雑で、これを達成するための非常に基本的な方法があるかどうか疑問に思っていました。

これが私の読み取り方法です。これまでのところ、istream に読み込まれますが、読み込んだときに並べ替える必要があります。頭が痛いです (笑)

void ListClass::Read(istream& r)
{
    char c[13];
    r >> c;
    r >> numberOfInts;

    Node *node = new Node();
    head = node;

    for(int i = 0; i < numberOfInts; i++)
    {
        r >> node->data;
        cout << node->data << endl;
        node->next = new Node;
        node = node->next;
    }

}

これがヘッダーファイルの Node クラスです

class Node
{
public:
    Node() {} //default constructor
    Node(int d, Node* q = 0) : data(d), next(q) {} //constructor with parameters data and next
    int data; //holds data in node
    Node* next;//pointer to next node
};
4

1 に答える 1

0

これにより、問題について適切に考えることができるかどうかを確認してください。

あなたは表向きのカードのデッキから始めます。カードのデッキを並べ替えたいのですが、奇妙なルールに従う必要があります。

一番上のカードだけが見えるように、ソートされていないカードのデッキを配置します。最初のカードを並べ替えた山に移動することから始めます (1 枚のカードは自動的に並べ替えられます)。

次のソートされていないカードを見てください。一番上に並べたカードよりも大きい (または小さい) 場合は、一番上に並べたカードを 3 番目の山に移動します。新しいカードが次のソートされたカードよりも小さくなるか、ソートされたパイルが空になるまで、カードを 1 つずつ 3 番目のパイルに移動し続け、ソートされていないカードをソートされたパイルに移動します。カードを 1 枚ずつ 3 番目の山から並べ替えた山に戻します。

未分類の山が空になるまで、前の手順を繰り返します。

于 2011-04-27T13:35:24.077 に答える