-5

intのリンクリストがある場合、C ++でcoutを使用して各要素を印刷できるように、リンクリストを反復/移動するにはどうすればよいですか?

4

3 に答える 3

1

お役に立てれば!

struct Node
    {
         int data;
         struct Node *next;
    }

void Print(Node *head)
{
    Node *a =head;
    while(a!=NULL){
        cout<<a->data<<endl;
        a = a->next;
    }
}
于 2017-12-24T16:30:11.827 に答える
0

あなたはこれを使うことができます:

void print(node* n) {
  cout << n -> value << endl;
  if(n -> next) print(n -> next);
}

そしてそれをこのように呼びます:

int main() {
  linked_list l;
  ...
  print(l -> head);
  return 0;
}
于 2012-11-16T00:13:46.990 に答える
0

おそらく、リンクリストには典型的なリンクリスト操作があります。これには、最初の要素を参照するイテレーターの取得、次の要素を参照するためのイテレーターのインクリメント、イテレーターがリストの最後から外れたかどうかの確認などが含まれます。アルゴリズムは次のとおりです。

  1. リンクリストの最初の要素を参照するようにイテレータを設定します。

  2. イテレータがリンクリストの最後から外れた場合は、停止します。

  3. イテレータが参照する要素を印刷します。

  4. イテレータをインクリメントします。

  5. 手順2に進みます。

これらの特定の手順のいずれかを実行する方法がわからない場合は、所有している特定のリンクされたクラスの使用方法がわかりません。それを支援するために、そのコード(または、既成のクラスの場合はドキュメントへのリンク)を確認する必要があります。

典型的なC++の実装は次のようになります。

void LinkedList::print(ostream& stream) const
{
      LinkedListElement* ptr = head; // this is my step 1
      while (ptr != NULL)            // this is my step 2
      {
           stream << *ptr;           // this is my step 3
           ptr = ptr->getNext();     // this is my step 4
      } // step 5 happens here because this is a loop
}
于 2012-11-16T00:14:12.080 に答える