cau truc du lieu danh sach lien ket vong

4 204 0
cau truc du lieu danh sach lien ket vong

Đang tải... (xem toàn văn)

Thông tin tài liệu

http://vietjack.com/cau-­‐truc-­‐du-­‐lieu-­‐va-­‐giai-­‐thuat  /index.jsp                                                                        Copyright  ©  vietjack.com     Cấu trúc liệu Danh sách liên kết vòng (Circular Linked List) Danh sách liên kết vòng (Circular Linked List) ? Danh sách liên kết vòng (Circular Linked List) biến thể Danh sách liên kết (Linked List), phần tử trỏ tới phần tử cuối phần tử cuối trỏ tới phần tử Cả hai loại Danh sách liên kết đơn (Singly Linked List) Danh sách liên kết đơi (Doubly Linked List) tạo thành dạng Danh sách liên kết vòng Phần tìm hiểu cách tạo 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, điểm trỏ tới nút cuối trỏ tới nút đầu tiên, thay trỏ tới NULL 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, điểm trỏ tới nút cuối trỏ tới nút điểm trỏ tới phía trước nút trước trỏ tới nút cuối Quá trình tạo thành vòng hai hướng http://vietjack.com/                                                                                                                            Trang  chia  sẻ  các  bài  học  online  miễn  phí     http://vietjack.com/cau-­‐truc-­‐du-­‐lieu-­‐va-­‐giai-­‐thuat  /index.jsp                                                                        Copyright  ©  vietjack.com     Nhìn vào hai hình minh họa trên, bạn cần ghi nhớ: • Next Last Link trỏ tới First Link hai trường hợp với Danh sách liên kết đơn Danh sách liên kết đơi • Prev First Link trỏ tới phần tử cuối Danh sách liên kết với trường hợp Danh sách liên kết đôi Các hoạt động Danh sách liên kết vòng Dưới số hoạt động hỗ trợ Danh sách liên kết vòng: • Hoạt động chèn: chèn phần tử vào vị trí bắt đầu Danh sách liên kết vòng • Hoạt động xóa: xóa phần tử Danh sách liên kết vòng • Hiển thị: hiển thị tồn Danh sách liên kết vòng Hoạt động chèn Danh sách liên kết vòng Dưới giải thuật minh họa hoạt động chèn Danh sách liên kết vòng dựa Danh sách liên kết đơn //Chèn link vị trí void insertFirst(int key, int data) { //tạo 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ỏ tới first node cũ link->next = head; http://vietjack.com/                                                                                                                            Trang  chia  sẻ  các  bài  học  online  miễn  phí     http://vietjack.com/cau-­‐truc-­‐du-­‐lieu-­‐va-­‐giai-­‐thuat  /index.jsp                                                                        Copyright  ©  vietjack.com     //trỏ first tới first node head = link; } } Để theo dõi phần triển khai code minh họa chi tiết ngôn ngữ C, bạn click chuột vào chương: Chương trình Danh sách liên kết vòng C Hoạt động xóa Danh sách liên kết vòng Dưới giải thuật minh họa hoạt động xóa Danh sách liên kết vòng dựa Danh sách liên kết đơn //Xóa phần tử struct 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 first head = head->next; } //trả link bị xóa return tempLink; Để theo dõi phần triển khai code minh họa chi tiết ngơn ngữ C, bạn click chuột vào chương: Chương trình Danh sách liên kết vòng C Hiển thị Danh sách liên kết vòng Dưới giải thuật minh họa hoạt động hiển thị toàn Danh sách liên kết vòng //Hiển thị danh sách liên kết vòng void printList() { struct node *ptr = head; printf("\n[ "); http://vietjack.com/                                                                                                                            Trang  chia  sẻ  các  bài  học  online  miễn  phí     http://vietjack.com/cau-­‐truc-­‐du-­‐lieu-­‐va-­‐giai-­‐thuat  /index.jsp                                                                        Copyright  ©  vietjack.com     //Bắt đầu từ vị trí 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 ngôn ngữ C, bạn click chuột vào chương: Chương trình Danh sách liên kết vòng C   http://vietjack.com/                                                                                                                            Trang  chia  sẻ  các  bài  học  online  miễn  phí     ... hai trường hợp với Danh sách liên kết đơn Danh sách liên kết đơi • Prev First Link trỏ tới phần tử cuối Danh sách liên kết với trường hợp Danh sách liên kết đôi Các hoạt động Danh sách liên kết... Chương trình Danh sách liên kết vòng C Hoạt động xóa Danh sách liên kết vòng Dưới giải thuật minh họa hoạt động xóa Danh sách liên kết vòng dựa Danh sách liên kết đơn //Xóa phần tử struct node... trình Danh sách liên kết vòng C Hiển thị Danh sách liên kết vòng Dưới giải thuật minh họa hoạt động hiển thị toàn Danh sách liên kết vòng //Hiển thị danh sách liên kết vòng void printList() { struct

Ngày đăng: 02/12/2017, 13:38

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan