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

Viết chương trình bằng C ++ để chèn một Node vào đầu danh sách liên kết Singly đã cho

Danh sách liên kết là một cấu trúc dữ liệu tuyến tính có nhiều nút được kết nối với nhau. Mỗi nút bao gồm hai trường Trường dữ liệu và địa chỉ của nút tiếp theo.

Giả sử chúng ta đã đưa ra một danh sách liên kết đơn lẻ, nhiệm vụ là chèn một nút vào đầu danh sách liên kết đã cho. Ví dụ:

Đầu vào-1 - 1 → 2 → 3 → 4

Chèn ‘5’ vào đầu hoặc đầu danh sách được liên kết nhất định.

Đầu ra - 5 → 1 → 2 → 3 → 4

Giải thích - Sau khi chèn nút vào đầu danh sách liên kết, nó sẽ in ra danh sách liên kết dưới dạng 5 → 1 → 2 → 3 → 4.

Phương pháp tiếp cận để giải quyết vấn đề này

Ban đầu, chúng tôi đã đưa ra một danh sách liên kết bao gồm các nút. Mỗi nút chứa dữ liệu và địa chỉ của nút tiếp theo.

Vì chúng ta đã tạo một nút nên chúng ta sẽ tạo một hàm lấy địa chỉ của nút đầu làm tham số và dữ liệu mà chúng ta phải chèn vào đầu danh sách liên kết và chèn dữ liệu vào đầu. Bây giờ hãy trỏ phần đầu đến nút mới được chèn.

  • Một hàm insertAthead (node ​​* &head, int data) lấy địa chỉ của nút head và dữ liệu mà chúng ta phải chèn.

  • Tạo một nút mới và chèn dữ liệu vào đó.

  • Di chuyển phần đầu đến nút mới được tạo.

  • In danh sách được liên kết.

Ví dụ

#include<iostream>
using namespace std;
class node{
   public:
      int data;
      node*next;
      node(int d);
      data=d;
      next= NULL;
   }
};
void insertAthead(node*&head, int data){
   node*n= new node(data);
   n->next= head;
   head= n;
}
void print(node*head){
   while(head!=NULL){
      cout<<head->data<<"->";
      head= head->next;
   }
}
int main(){
   node*head= NULL;
   insertAthead(head,5);
   insertAthead(head,2);
   insertAthead(head,8);
   insertAthead(head,3);
   print(head);
}

Đầu ra

Chạy đoạn mã trên sẽ tạo ra kết quả là,

3→ 8→ 2→ 5 →

Chèn các nút 3, 8, 2 và 5 vào đầu danh sách được liên kết, nó sẽ tạo ra kết quả là - 3 → 8 → 2 → 5 →.