Computer >> Máy Tính >  >> Lập trình >> C ++

Viết hàm để lấy nút thứ N trong Danh sách được liên kết trong C ++

Ở đây, chúng tôi được cung cấp một danh sách liên kết và một chỉ mục. Chúng ta phải viết một hàm để có được nút thứ N trong danh sách được liên kết.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào

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

Đầu ra

9

Để đi đến nút được chỉ định bởi n. Chúng tôi sẽ đi từng nút trong danh sách được liên kết và tăng số lượng chỉ mục cho đến khi đạt được vị trí thứ n cần thiết.

Chương trình minh họa chương trình,

Ví dụ

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

Đầu ra

Element at index 2 is 9