Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
618,69 KB
Nội dung
DATA STRUCTURE AND ALGORITHM Linked List CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Danh sách liên kết Dr Dao Nam Anh Data Structure and Algorithm Resource - Reference Slides of James Joshi, modified by Dao Nam Anh Major Reference: • Robert Sedgewick, and Kevin Wayne, “Algorithms” Princeton University, 2011, Addison Wesley • Algorithm in C (Parts 1-5 Bundle)- Third Edition by Robert Sedgewick, Addison-Wesley • Cấu trúc liệu giải thuật, Đinh Mạnh Tường • Giải thuật lập trình, Lê Minh Hồng, Đại Học Sư Phạm, 2002 Data Structure and Algorithm Sample function definition –Ví dụ định nghĩa hàm #include int lg(int); main() { int i, N; for (i = 1, N = 10; i 0; i++, N/= 2); return i; } Data Structure and Algorithm Data Structure – Cấu trúc liệu • Sử dụng cấu trúc liệu để quản lý tập liệu: Các thao tác với liệu cần thiết Triển khai thao tác • • Trong C ta dùng mảng, struct Ví dụ mảng C: int A1[N]; int A2[N][M]; char str[50]; » A1[4]? A1[i] = *(A1+i)? Data Structure and Algorithm Linked List – Danh sách liên kết • • Mỗi phần tử danh sách gọi node (nút) • Các thao tác Mỗi node có thành phần: phần liệu phần liên kết chứa địa node hay node trước Thêm phần tử Xóa phần tử Tìm kiếm h a e g m NULL Data Structure and Algorithm Linked List – Danh sách liên kết • Có nhiều kiểu tổ chức liên kết phần tử danh sách: Danh sách liên kết đơn Danh sách liên kết kép Danh sách liên kết vòng typedef struct node *link; struct node {char ch; link next;} h a e g m NULL Data Structure and Algorithm Linked List – Danh sách liên kết (đơn) • h Insert - Chèn a e g m NULL Data Structure and Algorithm Linked List – Danh sách liên kết (đơn) • Insert - Chèn t h f x a (t after x) e g m NULL Data Structure and Algorithm Linked List – Danh sách liên kết (đơn) • Insert - Chèn t h f x a (t after x) e g m NULL Data Structure and Algorithm Linked List – Danh sách liên kết (đơn) • Insert - Chèn t h f x a (t after x) e g m NULL Data Structure and Algorithm 10 Linked List – Danh sách liên kết (đơn) • Exchange – Đổi chỗ (exchange nodes after t1 and t2) t2 t1 h a e g h m Data Structure and Algorithm n 19 Linked List – Danh sách liên kết (đơn) • Exchange – Đổi chỗ (exchange nodes after t1 and t2) t2 t1 h a e g h m Data Structure and Algorithm n 20 Linked List – Danh sách liên kết (đơn) • Exchange – Đổi chỗ (exchange nodes after t1 and t2) t2 t1 h a e g h m Data Structure and Algorithm n 21 Linked List – Danh sách liên kết (đơn) • Exchange – Đổi chỗ (exchange nodes after t1 and t2) h a e g h m Data Structure and Algorithm n 22 Linked List – Danh sách liên kết (đơn) t • h Insert - Chèn x a e (t after x) f g m NULL h • a • h Delete - Xóa e x (delete after x) g m NULL Exchange – Đổi chỗ a e t1 (exchange nodes after t1 and t2) g h m t2 Data Structure and Algorithm 23 Doubly Linked List - Danh sách liên kết đôi typedef struct node *link; struct node {char ch; link prev; link next;} h a b c g m NULL Data Structure and Algorithm 24 Doubly Linked List - Danh sách liên kết đôi typedef struct node *link; struct node {char ch; link prev; link next;} h a b c g m NULL (delete after h) Data Structure and Algorithm 25 Doubly Linked List - Danh sách liên kết đôi typedef struct node *link; struct node {char ch; link prev; link next;} t h fe x a b (insert t after x) c g m NULL Data Structure and Algorithm 26 Doubly Linked List - Danh sách liên kết đôi typedef struct node *link; struct node {char ch; link prev; link next;} t h fe x a b (insert t after x) c g m NULL Data Structure and Algorithm 27 Doubly Linked List - Danh sách liên kết đôi typedef struct node *link; struct node {char ch; link prev; link next;} t h fe x a b (insert t after x) c g m NULL Data Structure and Algorithm 28 Doubly Linked List - Danh sách liên kết đôi typedef struct node *link; struct node {char ch; link prev; link next;} fe h a b c g m NULL Data Structure and Algorithm 29 Circular Linked List - Danh sách liên kết vòng h a b c g m a b c g m h Data Structure and Algorithm 30 Circular Linked List - Danh sách liên kết vòng h a b c g m a b c g m h Data Structure and Algorithm 31 Circular Linked List - Danh sách liên kết vòng h a b c g m a b c g m h Data Structure and Algorithm 32 Discussion – Câu hỏi • https://sites.google.com/site/daonamanhedu/datastructure-algorithm Data Structure and Algorithm 33 ... and Algorithm Linked List – Danh sách liên kết • Có nhiều kiểu tổ chức liên kết phần tử danh sách: Danh sách liên kết đơn Danh sách liên kết kép Danh sách liên kết vòng typedef struct node... Structure and Algorithm Linked List – Danh sách liên kết • • Mỗi phần tử danh sách gọi node (nút) • Các thao tác Mỗi node có thành phần: phần liệu phần liên kết chứa địa node hay node trước Thêm... Structure and Algorithm Linked List – Danh sách liên kết (đơn) • h Insert - Chèn a e g m NULL Data Structure and Algorithm Linked List – Danh sách liên kết (đơn) • Insert - Chèn t h f x a (t