danh sách liên kết đơn

62 1.4K 8
danh sách liên kết đơn

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ngtuananh_vn@yahoo .com 1 Chương 5 KHOA CNTT, BM: TIN HỌC TRẮC ĐỊA, Nguyễn Tuấn Anh, ngtuananh_vn@yahoo.com ĐẠI HỌC MỎ - ĐỊA CHẤT DANH SÁCH LIÊN KẾT Single Linked List ngtuananh_vn@yahoo .com 2 Danh sách liên kết đơn ngtuananh_vn@yahoo .com 3 Thêm vào một danh sách liên tục(mảng) insert(3, ‘z’) da b c 0 1 2 3 4 5 6 7 8 9 e f g hd e f g h z count=8count=9 Lý do sử dụng ds liên kết ngtuananh_vn@yahoo .com 4 X=d remove(3, x) da b c 0 1 2 3 4 5 6 7 8 9 e f g hd e f g h count=8 count=7 Xóa một phần tử ra khỏi mảng ngtuananh_vn@yahoo .com 5 infor Next Dữ liệu Trường liên kết L 3 Next 7 Next 8 DANH SÁCH LIÊN KẾT ĐƠN ngtuananh_vn@yahoo .com 6 ngtuananh_vn@yahoo .com 7 ĐỊNH NGHĨA 1 NÚT và KHAI BÁO CON TRỎ L TRỎ ĐẾN ĐẦU DANH SÁCH typedef struct Node{ Data infor; Node * next; }; Type Node = record ht:string[20]; ns: integer; Node ^next; End; Khai báo một con trỏ L Node * L; ngtuananh_vn@yahoo .com 8 Ví dụ tạo danh sách liên kết đơn các số nguyên typedef struct Node { int infor; Node * next; }; Node *L; ngtuananh_vn@yahoo .com 9 Ví dụ tạo danh sách liên kết đơn các sinh viên typedef struct sinhvien { char ht[25]; int namsinh; Node * next; }; Sinhvien *L; ngtuananh_vn@yahoo .com 10 L infor Next infor Next … infor F infor Next infor Next … infor Dạng tổng quát dùng một con trỏ L Dạng tổng quát dùng 2 con trỏ F và L F: First L: Last infor Next Dữ liệu Trường liên kết [...]... phép toán trên DSLK đơn 1 TẠO DANH SÁCH RỖNG 2 THÊM MỘT PHẦN TỬ VÀO CUỐI DANH SÁCH 3 THÊM MỘT PHẦN TỬ SAU MỘT PHẦN TỬ KHÁC 4 XÓA MỘT PHẦN TỬ RA KHỎI DANH SÁCH 5 GHÉP NỐI 2 DSLK ĐƠN THÀNH MỘT DSLK ĐƠN 12 1 TẠO DANH SÁCH RỖNG • Procedure MakeNull( L ) L = Nil; L NIL 13 2 THÊM MỘT PHẦN TỬ VÀO CUỐI DANH SÁCH PROCEDURE INSERT(L,X); • Ví dụ ta muốn thêm một phần tử X = 10 vào cuối danh sách L 1 4 3 Bước 1... 20 DANH SÁCH SAU KHI THÊM NÚT MỚI X=12 L 1 4 12 10 3 21 4 LOẠI BỎ MỘT NÚT RA KHỎI DSLK ĐƠN PROCEDURE DELETE ( L, M ) Trường hợp 1 DANH SÁCH RỖNG KẾT THÚC 22 4 LOẠI BỎ MỘT NÚT RA KHỎI DSLK ĐƠN PROCEDURE DELETE ( L, M ) Trường hợp 2 Nút M trùng với nút đầu danh sách L 1 3 10 Bước 1 Bước 2 M≡L Xóa M 23 4 LOẠI BỎ MỘT NÚT RA KHỎI DSLK ĐƠN PROCEDURE DELETE ( L, M ) Trường hợp 2 Nút M trùng với nút đầu danh. .. P->infor = X; P->Next = NIL 10 14 2 THÊM MỘT PHẦN TỬ VÀO CUỐI DANH SÁCH • Ví dụ ta muốn thêm một phần tử X = 10 vào cuối danh sách L 1 Bước 1 New (P); P->infor = X; P->Next = NIL 4 3 q 10 15 2 THÊM MỘT PHẦN TỬ VÀO CUỐI DANH SÁCH • Ví dụ ta muốn thêm một phần tử X = 10 vào cuối danh sách L 1 Bước 1 New (P); P->infor = X; P->Next = NIL 4 3 q 10 16 DANH SÁCH SAU KHI CHÈN L 1 4 10 3 17 3 THÊM MỘT PHẦN TỬ SAU... nằm ở giữa danh sách M L 1 4 12 10 3 P Bước 2 Nối nút đứng trước M đến nút đứng sau M 27 4 LOẠI BỎ MỘT NÚT RA KHỎI DSLK ĐƠN PROCEDURE DELETE ( L, M ) Trường hợp 3 Nút M nằm ở giữa danh sách M L 1 4 12 10 3 P Bước 3 Xóa M 28 4 LOẠI BỎ MỘT NÚT RA KHỎI DSLK ĐƠN PROCEDURE DELETE ( L, M ) Trường hợp 3 Nút M nằm ở giữa danh sách L 1 4 10 3 Bước 3 Xóa M xong 29 5 GHÉP NỐI 2 DSLK ĐƠN THÀNH MỘT DSLK ĐƠN procedure... trùng với nút đầu danh sách L 3 10 24 4 LOẠI BỎ MỘT NÚT RA KHỎI DSLK ĐƠN PROCEDURE DELETE ( L, M ) Trường hợp 3 Nút M=12 nằm ở giữa danh sách M L 1 12 4 q 10 3 P Bước 1 Tìm đến nút đứng trước M 25 4 LOẠI BỎ MỘT NÚT RA KHỎI DSLK ĐƠN PROCEDURE DELETE ( L, M ) Trường hợp 3 Nút M nằm ở giữa danh sách M L 1 4 12 10 3 P Bước 1 Tìm đến nút đứng trước M 26 4 LOẠI BỎ MỘT NÚT RA KHỎI DSLK ĐƠN PROCEDURE DELETE... procedure combine ( P,Q ); P Q 3 10 4 4 22 Các trường hợp : 1 Q = NIL ( Q rỗng ) 2 P = NIL ( P rỗng ) 3 P và Q đều khác rỗng 30 procedure combine ( P,Q ); Kết quả là danh sách P P 3 10 1 Q = NIL ( Q rỗng ) 31 procedure combine ( P,Q ); Kết quả là danh sách Q Q 4 4 22 2 P = NIL ( P rỗng ) 32 procedure combine ( P,Q ); P 3 Q 10 4 4 22 3 P và Q đều khác rỗng 33 procedure combine ( P,Q ); P1 P 3 Q 10 4 4 . ĐỊA CHẤT DANH SÁCH LIÊN KẾT Single Linked List ngtuananh_vn@yahoo .com 2 Danh sách liên kết đơn ngtuananh_vn@yahoo .com 3 Thêm vào một danh sách liên tục(mảng). tạo danh sách liên kết đơn các số nguyên typedef struct Node { int infor; Node * next; }; Node *L; ngtuananh_vn@yahoo .com 9 Ví dụ tạo danh sách liên kết

Ngày đăng: 28/07/2013, 01:26

Từ khóa liên quan

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

Tài liệu liên quan