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

PHPz
リリース: 2023-09-10 09:21:13
転載
860 人が閲覧しました

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  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 :"<
        
ログイン後にコピー

出力

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

Linked List is : 1 -> 8 -> 56 -> 12 -> 34 -> NULL
ログイン後にコピー

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

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!