>  기사  >  백엔드 개발  >  C++에서 연결 리스트의 재귀 삽입 및 순회

C++에서 연결 리스트의 재귀 삽입 및 순회

PHPz
PHPz앞으로
2023-09-10 09:21:13912검색

C++에서 연결 리스트의 재귀 삽입 및 순회

연결된 목록을 구성하는 데 사용되는 정수 값을 얻습니다. 작업은 먼저 재귀적 방법을 사용하여 단일 연결 목록을 삽입한 다음 순회하는 것입니다.

끝에 노드를 재귀적으로 추가

  • 헤드가 NULL인 경우 → 헤드에 노드 추가

  • 그렇지 않으면 헤드에 추가( head → next)

노드를 통해 재귀적으로 반복

  • 헤드가 NULL인 경우 → 종료

  • 그렇지 않으면 인쇄( head → next )

Example

Input− 1 - 2 - 7 - 9 - 10

Output

Output Strong>− 연결 목록 : 1 → 2 → 7 → 9 → 10 → NULL

Input− 12 - 21 - 17 - 94 - 18

Output− 연결 목록: 12 → 21 → 17 → 94 → 18 → NULL

사용 방법 다음 프로그램에서는 다음과 같습니다

이 방법에서는 함수를 사용하여 노드를 추가하고 단일 연결 목록을 순회하며 다음 입력을 위해 재귀적으로 호출합니다.

  • 정수와 다음 포인터가 포함된 구조체 SLLNode*를 가져옵니다.

  • Function addtoEnd(SLLNode* head, int data) 연결된 목록의 헤드에 대한 포인터와 데이터 부분의 정수를 가져오고 연결 목록의 끝에 노드를 추가합니다.

    li>
  • 헤드 포인터가 NULL이면 목록이 비어 있으므로 이제 새 노드를 추가하고 이를 헤드로 설정합니다. head → next를 NULL로 추가합니다. 노드에 대한 포인터를 반환합니다.

  • head가 null이 아닌 경우 head->next = addtoEnd(head->next, data)를 사용하여 노드를 head → next에 추가합니다.

  • 함수 traverseList(SLLNode* head) 헤드부터 순회하고 각 값을 인쇄합니다.

  • head가 NULL이면 NULL을 인쇄하고 반환합니다.

  • 그렇지 않으면 데이터 값을 인쇄하고 traverseList(head->next)를 사용하여 다음으로 이동합니다.

  • 기본 생성 목록에서 addtoEnd()를 사용하고 traverseList()를 사용하여 목록을 인쇄합니다.

Example

#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;
}

Output

위 코드를 실행하면 다음과 같은 출력이 생성됩니다

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

위 내용은 C++에서 연결 리스트의 재귀 삽입 및 순회의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제