cau truc du lieu danh sach lien ket doi

4 147 0
cau truc du lieu danh sach lien ket doi

Đ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 giải thuật Danh sách liên kết đôi Danh sách liên kết đôi (Doubly Linked List) ? Danh sách liên kết đôi (Doubly Linked List) biến thể Danh sách liên kết (Linked List), hoạt động duyệt qua nút thực theo hai chiều: trước sau cách dễ dàng so sánh với Danh sách liên kết đơn Dưới số khái niệm quan trọng cần ghi nhớ Danh sách liên kết đơi • Link: link Danh sách liên kết lưu giữ liệu gọi phần tử • Next: link Danh sách liên kết chứa link tới next link gọi Next • Prev: link Danh sách liên kết chứa link tới previous link gọi Prev • First Last: Danh sách liên kết chứa link kết nối tới first link gọi First tới last link gọi Last Biểu diễn Danh sách liên kết đơi Như hình minh họa trên, bạn cần ghi nhớ: • Danh sách liên kết đơi chứa phần tử link gọi First Last • Mỗi link mang trường liệu trường link gọi Next • Mỗi link liên kết với phần tử sử dụng Next Link 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 Mi link liên kết với phần tử phía trước sử dụng Prev Link • Last Link mang link trỏ tới NULL để đánh dầu phần cuối Danh sách liên kết Các hoạt động Danh sách liên kết đơi • Hoạt động chèn: thêm phần tử vào vị trí đầu Danh sách liên kết • Hoạt động xóa: xóa phần tử vị trí đầu Danh sách liên kết • Hoạt động chèn vào cuối: thêm phần tử vào vị trí cuối Danh sách liên kết • Hoạt động xóa phần tử cuối: xóa phần tử vị trí cuối Danh sách liên kết • Hoạt động chèn vào sau: thêm phần tử vào sau phần tử Danh sách liên kết • Hoạt động xóa (bởi key): xóa phần tử từ Danh sách liên kết sử dụng khóa cung cấp • Hiển thị danh sách phía trước: hiển thị tồn Danh sách liên kết theo chiều phía trước • Hiển thị danh sách phía sau: hiển thị tồn Danh sách liên kết theo chiều phía sau Hoạt động chèn Danh sách liên kết đôi Phần giải thuật minh họa cho hoạt động chèn vị trí đầu Danh sách liên kết đơi //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()) { 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     //Biến thành last link last = link; }else { //Cập nhật prev link head->prev = link; } //Trỏ tới first link cũ link->next = head; } //Trỏ first tới first link head = link; Để tìm hiểu chi tiết code minh họa danh sách liên kết đôi ngôn ngữ C, mời bạn click chuột vào chương: Chương trình danh sách liên kết đơi C Hoạt động xóa Danh sách liên kết đôi Phần giải thuật minh họa cho hoạt động xóa phần tử vị trí đầu Danh sách liên kết đơi //xóa phần tử struct node* deleteFirst() { //Lưu tham chiếu tới first link struct node *tempLink = head; //Nếu có link if(head->next == NULL) { last = NULL; }else { head->next->prev = NULL; } head = head->next; //Trả link bị xóa return tempLink; } Để tìm hiểu chi tiết code minh họa danh sách liên kết đôi ngôn ngữ C, mời bạn click chuột vào chương: Chương trình danh sách liên kết đơi C 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     Hoạt động chèn vị trí cuối Danh sách liên kết đơi Phần giải thuật minh họa cho hoạt động chèn vị trí cuối Danh sách liên kết đơi //Chèn link vào vị trí cuối void insertLast(int key, int data) { //tạo link struct node *link = (struct node*) malloc(sizeof(struct node)); link->key = key; link->data = data; if(isEmpty()) { //biến thành last link last = link; }else { //làm cho link trở thành last link last->next = link; //Đánh dấu last node prev new link link->prev = last; } } //Trỏ last tới new last node last = link; Để tìm hiểu chi tiết code minh họa danh sách liên kết đôi ngôn ngữ C, mời bạn click chuột vào chương: Chương trình danh sách liên kết đơi C   http://vietjack.com/                                                                                                                            Trang  chia  sẻ  các  bài  học  online  miễn  phí     ... phần tử từ Danh sách liên kết sử dụng khóa cung cấp • Hiển thị danh sách phía trước: hiển thị tồn Danh sách liên kết theo chiều phía trước • Hiển thị danh sách phía sau: hiển thị tồn Danh sách... http://vietjack.com /cau- ­ truc- ­ du- ­ lieu- ­‐va-­‐giai-­‐thuat  /index.jsp                                                                        Copyright  ©  vietjack.com     Hoạt động chèn vị trí cuối Danh. ..http://vietjack.com /cau- ­ truc- ­ du- ­ lieu- ­‐va-­‐giai-­‐thuat  /index.jsp                                                  

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