Kiếm trả danh sách liên kết vòng

Danh sách liên kết vòng (Circular Linked List) là gì?

Danh sách liên kết vòng (Circular Linked List) là một biến thể công cụ của Danh sách liên kết (Linked List) miễn phí , trong đó phần tử đầu tiên trỏ tới phần tử cuối cùng ở đâu uy tín và phần tử cuối cùng trỏ tới phần tử đầu tiên.

Cả hai loại Danh sách liên kết đơn (Singly Linked List) mẹo vặt và Danh sách liên kết đôi (Doubly Linked List) đều giá rẻ có thể tối ưu được tạo thành dạng Danh sách liên kết vòng bản quyền . Phần dưới chúng ta link down sẽ tìm hiểu từng cách tạo một.

Tạo Danh sách liên kết vòng từ Danh sách liên kết đơn

Trong Danh sách liên kết đơn qua mạng , điểm trỏ tới kế tiếp hướng dẫn của nút cuối nơi nào sẽ trỏ tới nút đầu tiên trực tuyến , thay vì link down sẽ trỏ tới NULL.

Kiếm trả danh sách liên kết vòng

Tạo Danh sách liên kết vòng từ Danh sách liên kết đôi

Trong Danh sách liên kết đôi quảng cáo , điểm trỏ tới kế tiếp qua app của nút cuối trỏ tới nút đầu tiên download và điểm trỏ tới phía trước hỗ trợ của nút trước tốt nhất sẽ trỏ tới nút cuối cùng mật khẩu . Quá trình này vô hiệu hóa sẽ tạo thành vòng ở cả hai hướng.

Kiếm trả danh sách liên kết vòng

Nhìn vào hai hình minh họa trên nguyên nhân , bạn cần ghi nhớ:

Next nơi nào của Last Link trỏ tới First Link trong cả hai trường hợp nơi nào với Danh sách liên kết đơn ứng dụng cũng như Danh sách liên kết đôi.

Prev hỗ trợ của First Link trỏ tới phần tử cuối trên điện thoại của Danh sách liên kết tốc độ với trường hợp Danh sách liên kết đôi.

Các hoạt động cơ bản trên Danh sách liên kết vòng

Dưới đây là một số hoạt động cơ bản trên điện thoại được hỗ trợ mẹo vặt bởi Danh sách liên kết vòng:

Hoạt động chèn: chèn một phần tử vào vị trí bắt đầu tốt nhất của Danh sách liên kết vòng.

Hoạt động xóa: xóa một phần tử dữ liệu của Danh sách liên kết vòng.

Hiển thị: hiển thị toàn bộ Danh sách liên kết vòng.

Hoạt động chèn trong Danh sách liên kết vòng

Dưới đây là giải thuật minh họa hoạt động chèn trong Danh sách liên kết vòng dựa trên Danh sách liên kết đơn.

//Chèn link tại vị trí đầu tiênvoid insertFirst(int key, int data) { //tạo một link struct node *link = (struct node*) malloc(sizeof(struct node)); link->key = key; link->data= data; if (isEmpty()) { head = link; head->next = head; }else { //trỏ nó tới first node cũ link->next = head; //trỏ first tới first node mới head = link; } }

Để theo dõi phần triển khai code minh họa chi tiết trong ngôn ngữ C quản lý , bạn vào chương: Chương trình Danh sách liên kết vòng trong C.

Hoạt động xóa trong Danh sách liên kết vòng

Dưới đây là giải thuật minh họa hoạt động xóa trong Danh sách liên kết vòng dựa trên Danh sách liên kết đơn.

//Xóa phần tử đầu tiênstruct node * deleteFirst() { //Lưu tham chiếu tới first link struct node *tempLink = head; if(head->next == head){ head = NULL; return tempLink; } //Đánh dấu next tới first link là first head = head->next; //trả về link ứng dụng đã bị xóa return tempLink;}

Để theo dõi phần triển khai code minh họa chi tiết trong ngôn ngữ C công cụ , bạn vào chương: Chương trình Danh sách liên kết vòng trong C.

Hiển thị Danh sách liên kết vòng

Dưới đây là giải thuật minh họa hoạt động hiển thị toàn bộ Danh sách liên kết vòng.

//Hiển thị danh sách liên kết vòngvoid printList() { struct node *ptr = head; printf(" [ "); //Bắt đầu từ vị trí đầu tiên if(head != NULL) { while(ptr->next != ptr) { printf("(%d,%d) ",ptr->key,ptr->data); ptr = ptr->next; } } printf(" ]");}

Để theo dõi phần triển khai code minh họa chi tiết trong ngôn ngữ C chi tiết , bạn vào chương: Chương trình Danh sách liên kết vòng trong C.

Theo Tutorialspoint

Bài trước: Cấu trúc dữ liệu danh sách liên kết (Linked List)

Bài tiếp: Cấu trúc dữ liệu ngăn xếp (Stack)

4.9/5 (29 votes)

Có thể bạn quan tâm:

  • Tìm kiếm file nhanh hơn Windows Explorer với lệnh Command Prompt này
  • Cách phóng to một phần ảnh trên iPhone
  • Cách mở khóa nạp thẻ Mobifone khi nạp sai quá 5 lần
  • Dropbox nền web được bổ sung tính năng xem trước tài liệu và quản lí ảnh tập trung
  • NPU là gì?