GIỚI THIỆU MÔN HỌC | GIỚI THIỆU MÔN HỌC Tóm tắt nội dung Bài 1 Danh sách liên kết Bài 2 Một số phương pháp sắp xếp Bài 3 Hàm băm Bài 4 Cây cây nhị phân cây nhị phân tìm kiếm cây cân bằng Bài 5 Cây đỏ đen Bài 6 B-cây cây 2-3-4 Bài 7 Các đống nhị thức Bài 8 Các đống Fibonaci Bài 9 Các tập rời nhau Bài 10 Các thuật toán so khớp chuỗi Tài liệu tham khảo 1 Data Structures Algorithms and Object-Oriented Programming. NXB McGraw Hill Tác giả Gregory Heilleman -1996 2 Advanced Data Structures. NXB McGraw Hill - 1990 Tác giả Thomas H. C. Charles . and Ronald . 3 Giáo trình thuật toán. NXB Thống kế 2002. Nhóm Ngọc Anh Thư dịch 4 Algorithms and Data Structures in C Tác giả Alan Parker 1 r -í T-v. 1 r 1 1 V 1 Á Bài 1 Danh sách liên kết I Danh sách liên kết đơn 1. Tổ chức danh sách đơn Danh sách liên kết bao gồm các phần tử. Mỗi phần tử của danh sách đơn là một cấu trúc chứa 2 thông tin - Thành phần dữ liệu lưu trữ các thông tin về bản thân phần tử . - Thành phần mối liên kết lưu trữ địa chỉ của phần tử kế tiếp trong danh sách hoặc lưu trữ giá trị NULL nếu là phần tử cuối danh sách. Ta có định nghĩa tổng quát typedef struct tagNode Data Info Data là kiểu đã định nghĩa trước Struct tagNode pNext con trỏ chỉ đến cấu trúc node NODE Ví dụ Định nghĩa danh sách đơn lưu trữ hồ sơ sinh viên typedef struct SinhVien Data char Ten 30 int MaSV SV typedef struct SinhvienNode 2 SV Info struct SinhvienNode pNext SVNode Các phần tử trong danh sách sẽ được cấp phát động. Biết phần tử đầu tiên ta sẽ truy xuất được các phần tử tiếp theo. Thường sử dụng con trỏ Head để lưu trữ địa chỉ đầu tiên của danh sách. Ta có khai báo NODE pHead Để quản lý địa chỉ cuối cùng trong danh sách ta dùng con trỏ TAIL. Khai báo như sau NODE pTail VD II. Các thao tác cơ bản trên danh sách đơn Giả sử có các định nghĩa typedef struct tagNode Data Info struct tagNode pNext NODE typedef struct tagList