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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









C++ 関数の再帰の深さは制限されており、この制限を超えるとスタック オーバーフロー エラーが発生します。制限値はシステムやコンパイラによって異なりますが、通常は 1,000 ~ 10,000 の間です。解決策には次のものが含まれます: 1. 末尾再帰の最適化、2. 末尾呼び出し、3. 反復実装。

はい、C++ ラムダ式は std::function を使用して再帰をサポートできます。std::function を使用して Lambda 式への参照をキャプチャします。キャプチャされた参照を使用すると、ラムダ式はそれ自体を再帰的に呼び出すことができます。

SQL での MINUS の使用法と具体的なコード例 SQL では、MINUS は 2 つの結果セット間の差分演算を実行するために使用される演算子です。これは、2 番目の結果セットと同じ行を最初の結果セットから削除するために使用されます。 MINUS 演算子によって返される結果セットには、最初の結果セットにのみ存在する行が含まれます。以下では、特定のコード例を使用して MINUS の使用法を示します。 「table1」と「table2」という 2 つのテーブルがあると仮定します。それらの構造は次のとおりです。 テーブル名: table1 フィールド

再帰アルゴリズムは、関数の自己呼び出しを通じて構造化された問題を解決します。利点は、シンプルで理解しやすいことですが、欠点は、効率が低く、スタック オーバーフローを引き起こす可能性があることです。非再帰アルゴリズムは、明示的に管理することで再帰を回避します。スタック データ構造の利点は、より効率的でスタックのオーバーフローを回避できることですが、欠点はコードがより複雑になる可能性があることです。再帰的か非再帰的かの選択は、問題と実装の特定の制約によって異なります。

Java は、強力なファイル処理機能を備えた人気のあるプログラミング言語です。 Java では、フォルダーを走査してすべてのファイル名を取得するのが一般的な操作であり、これは特定のディレクトリー内のファイルを迅速に見つけて処理するのに役立ちます。この記事では、Java でフォルダーを走査してすべてのファイル名を取得するメソッドを実装する方法と、具体的なコード例を紹介します。 1. 再帰的メソッドを使用してフォルダーを走査する 再帰的メソッドを使用してフォルダーを走査することができます。再帰的メソッドはそれ自体を呼び出す方法であり、フォルダーを効果的に走査できます。

再帰関数は、文字列処理の問題を解決するためにそれ自体を繰り返し呼び出す手法です。無限再帰を防ぐために終了条件が必要です。再帰は、文字列の反転や回文チェックなどの操作で広く使用されています。

再帰は、問題を解決するために関数自体を呼び出すことを可能にする強力な手法です。C++ では、再帰関数は、基本ケース (再帰をいつ停止するかを決定する) と再帰呼び出し (問題を分割する) という 2 つの重要な要素で構成されます。より小さなサブ問題)。基本を理解し、階乗計算、フィボナッチ数列、バイナリ ツリー トラバーサルなどの実践的な例を練習することで、再帰的な直感を構築し、自信を持ってコードで使用することができます。

1. wps ソフトウェアを開き、wps テキスト操作インターフェイスに入ります。 2. このインターフェースで挿入オプションを見つけます。 3. [挿入] オプションをクリックし、編集領域で [形状] オプションを見つけます。 4. 形状オプションをクリックし、そのサブメニューで推奨オプションを見つけます。 5. 推奨オプションで中国マップ オプションを見つけます。 6. [中国地図] オプションをクリックし、編集入力領域でマウスの左ボタンでドラッグして、必要な中国地図を取得します。
