ホームページ >バックエンド開発 >C++ >C++ でリンク リストを再帰的に挿入して走査する

C++ でリンク リストを再帰的に挿入して走査する

PHPz
PHPz転載
2023-09-10 09:21:13940ブラウズ

C++ でリンク リストを再帰的に挿入して走査する

リンク リストの形成に使用される整数値を取得します。このタスクは、最初に単一リンク リストを挿入し、次に再帰的方法を使用して走査することです。

末尾に再帰的にノードを追加します

  • head が NULL の場合 → head にノードを追加

  • それ以外の場合は head に追加( head → next )

ノードを再帰的にトラバースします

  • head が NULL の場合 → exit

  • それ以外の場合Print ( head → next )

Example

Input− 1 - 2 - 7 - 9 - 10

Output

Outputstrong>− リンクリスト: 1 → 2 → 7 → 9 → 10 → NULL

Input− 12 - 21 - 17 - 94 - 18

出力− リンクリスト: 12 → 21 → 17 → 94 → 18 → NULL

次のプログラムで使用されるメソッドは次のとおりです。次のように

このメソッドでは、関数を使用してノードを追加し、単一リンクされたリストを走査し、次の入力のためにそれらを再帰的に呼び出します。

  • 整数と次のポインター SLLNode* を持つ構造体 SLLNode を取得します。

  • Function addtoEnd(SLLNode* head, int data) リンクリストの先頭へのポインタとデータ部の整数を取得し、リンクリストの末尾にノードを追加します。リスト。

    li>
  • ヘッド ポインタが NULL の場合、リストは空です。ここで新しいノードを追加し、それをヘッドとして設定します。 head → next を NULL として追加します。ノードへのポインタを返します

  • head が null でない場合は、head->next = addtoEnd(head->next, data) を使用してノードを head → next に追加します。

  • Function traverseList(SLLNode* head) head からトラバースして各値を出力します。

  • head が NULL の場合は、NULL を出力して戻ります。

  • それ以外の場合は、データ値を出力し、traverseList(head->next) を使用して、 1つを横断します。

  • メイン作成リストで addtoEnd() を使用し、リストを出力するには traverseList() を使用します。

#include <bits/stdc++.h>
using namespace std;
struct SLLNode {
   int data;
   SLLNode* next;
};
SLLNode* addtoEnd(SLLNode* head, int data){
   if (head == NULL){
      SLLNode *nodex = new SLLNode;
      nodex->data = data;
      nodex->next = NULL;
      return nodex;
   }
   else{
      head->next = addtoEnd(head->next, data);
    }
   return head;
}
void traverseList(SLLNode* head){
   if (head == NULL){
      cout <<"NULL";
      return;
   }
   cout << head->data << " -> ";
   traverseList(head->next);
}
int main(){
   SLLNode* head1 = NULL;
   head1 = addtoEnd(head1, 1);
   head1 = addtoEnd(head1, 8);
   head1 = addtoEnd(head1, 56);
   head1 = addtoEnd(head1, 12);
   head1 = addtoEnd(head1, 34);
   cout<<"Linked List is :"<<endl;
   traverseList(head1);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます

Linked List is :
1 -> 8 -> 56 -> 12 -> 34 -> NULL

以上がC++ でリンク リストを再帰的に挿入して走査するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。