Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 연결 목록에서 N번째 노드를 가져오는 함수 작성

<시간/>

여기에서 링크드 리스트와 인덱스가 주어진다. 연결 리스트에서 N번째 노드를 가져오는 함수를 작성해야 합니다.

문제를 이해하기 위해 예를 들어 보겠습니다.

입력

linked list = 34 -> 4 -> 9 -> 1 , n = 2

출력

9

n으로 지정된 노드로 이동합니다. 연결 목록에서 노드별로 이동하여 필요한 n번째 위치에 도달할 때까지 인덱스 수를 늘립니다.

프로그램을 설명하는 프로그램,

예시

#include <iostream>
using namespace std;
class Node{
   public:
   int data;
   Node* next;
};
void insertNode(Node** head_ref, int new_data) {
   Node* new_node = new Node();
   new_node->data = new_data;
   new_node->next = (*head_ref);
   (*head_ref) = new_node;
}
int findNodeAt(Node* head, int index) {
   Node* current = head;
   int count = 0;
   while (current != NULL){
      if (count == index)
         return(current->data);
      count++;
      current = current->next;
   }
}
int main(){
   Node* head = NULL;
   insertNode(&head, 8);
   insertNode(&head, 2);
   insertNode(&head, 9);
   insertNode(&head, 1);
   insertNode(&head, 4);
   int n = 2;
   cout<<"Element at index "<<n<<" is "<<findNodeAt(head, 2);
   return 0;
}

출력

Element at index 2 is 9