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

Xóa nút đầu tiên của danh sách được liên kết bằng C ++

Với một danh sách được liên kết, chúng ta cần xóa phần tử đầu tiên của nó và trả con trỏ về phần đầu của danh sách mới.

Input : 1 -> 2 -> 3 -> 4 -> 5 -> NULL
Output : 2 -> 3 -> 4 -> 5 -> NULL

Input : 2 -> 4 -> 6 -> 8 -> 33 -> 67 -> NULL
Output : 4 -> 6 -> 8 -> 33 -> 67 -> NULL

Trong bài toán đã cho, chúng ta cần xóa nút đầu tiên của danh sách và di chuyển phần đầu của chúng tôi đến phần tử thứ hai và trả lại phần đầu.

Phương pháp tiếp cận để tìm ra giải pháp

Trong vấn đề này, chúng ta có thể di chuyển phần đầu đến vị trí tiếp theo và sau đó giải phóng nút trước đó.

Ví dụ

#include <iostream>
using namespace std;
/* Link list node */
struct Node {
   int data;
   struct Node* next;
};
void push(struct Node** head_ref, int new_data) { // pushing the data into the list
   struct Node* new_node = new Node;
   new_node->data = new_data;
   new_node->next = (*head_ref);
   (*head_ref) = new_node;
}
int main() {
   Node* head = NULL;
   push(&head, 12);
   push(&head, 29);
   push(&head, 11);
   push(&head, 23);
   push(&head, 8);
   auto temp = head; // temp becomes head
   head = head -> next; // our head becomes the next element
   delete temp; // we delete temp i.e. the first element
   for (temp = head; temp != NULL; temp = temp->next) // printing the list
      cout << temp->data << " ";
   return 0;
}

Đầu ra

23 11 29 12

Giải thích về đoạn mã trên

Chúng ta chỉ cần chuyển phần đầu đến phần tử tiếp theo của nó trong chương trình này và sau đó xóa phần tử trước đó và sau đó in danh sách mới. Độ phức tạp về thời gian tổng thể của chương trình nhất định là O (1), có nghĩa là chương trình của chúng tôi không phụ thuộc vào đầu vào đã cho và đó là độ phức tạp tốt nhất mà chúng tôi có thể đạt được.

Kết luận

Trong bài viết này, chúng tôi giải quyết một vấn đề để loại bỏ nút đầu tiên của danh sách liên kết. Chúng tôi cũng đã học chương trình C ++ cho vấn đề này và cách tiếp cận hoàn chỉnh mà chúng tôi đã giải quyết. Chúng ta có thể viết cùng một chương trình bằng các ngôn ngữ khác như C, java, python và các ngôn ngữ khác. Chúng tôi hy vọng bạn thấy bài viết này hữu ích.