Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Logic xóa phần tử đầu/cuối danh sách liên kết C


Danh sách liên kết dùng cấp phát động, co giãn. Là tập hợp nút.

Nút có hai phần: dữ liệu và liên kết.

Logic xóa phần tử đầu/cuối danh sách liên kết C

Thao tác trên danh sách liên kết

  • Chèn
  • Xóa
  • Duyệt

Xóa

  • Xác định nút.
  • Điều chỉnh liên kết để giải phóng không làm ngắt danh sách.
  • Trả về/hiển thị phần tử xóa.
  • Giải phóng bộ nhớ.

Xóa phần tử đầu (Head)

Các bước xóa head:

1. void del_head() 
2. { 
3. int x; Node *temp; 
4. if(Head == NULL) { printf("Danh sach rong"); return; } 
5. x = Head->ele; 
6. temp = Head; 
7. if(Head == Tail) Head = Tail = NULL; 
8. Else Head = Head->next; 
9. printf("Da xoa %d", x); 
10. free(temp); 
11. }

Giải thích:

Bước 4 - Kiểm tra rỗng.

Bước 5 - Đọc phần tử xóa.

Bước 6 - Head tham chiếu bởi temp.

Bước 7 - Kiểm tra xóa cuối cùng.

Bước 8 - Di chuyển head sang phần tử tiếp theo.

Bước 9 - Hiển thị phần tử xóa.

Bước 10 - Giải phóng bộ nhớ.

Xóa phần tử cuối (Tail)

Các bước xóa tail:

1. void del_tail() 
2. { 
3. int x; Node *temp; 
4. if(Head == NULL) { printf("Danh sach rong"); return; } 
5. temp = Head; 
6. while(temp->next != Tail) temp = temp->next; 
7. x = Tail->ele; 
8. Tail = temp; 
9. Temp = temp->next; 
10. Tail->next = NULL; 
11. printf("Da xoa %d", x); 
12. free(temp); 
13. }

Giải thích:

Bước 4 - Kiểm tra rỗng.

Bước 5-6 - Di chuyển temp đến nút倒数 thứ 2.

Bước 7 - Đọc tail element.

Bước 8 - Di chuyển tail về nút倒数 thứ 2.

Bước 9 - Di chuyển temp đến nút cuối.

Bước 10 - Xóa tham chiếu tail->temp.

Bước 11 - Hiển thị phần tử xóa.

Bước 12 - Giải phóng bộ nhớ.