リンク リストの形成に使用される整数値を取得します。このタスクは、最初に単一リンク リストを挿入し、次に再帰的方法を使用して走査することです。
head が NULL の場合 → head にノードを追加
それ以外の場合は head に追加( head → next )
head が NULL の場合 → exit
それ以外の場合Print ( head → next )
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 サイトの他の関連記事を参照してください。