Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 4 - ĐH Công nghệ Đồng Nai
Số trang: 78
Loại file: ppt
Dung lượng: 829.50 KB
Lượt xem: 14
Lượt tải: 0
Xem trước 8 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Nhằm giúp các bạn sinh viên và các giáo viên có thêm tư liệu tham khảo. Dưới đây là bài giảng Cấu trúc dữ liệu và giải thuật chương 4: Danh sách liên kết đơn trình bày nội dung về cấu trúc dữ liệu của kiên kết đơn, các thao tác cơ bản trên danh sách liên kết đơn, minh họa thuật toán, cài đặt thuật toán, cài đặt hàm main, ứng dụng Stack và Queue
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 4 - ĐH Công nghệ Đồng Nai CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NỘI DUNG DANH SÁCH LIÊN KẾT ĐƠN (LIST) 1 Tổ Chức Của DSLK Đơn x2 x0 x3 x1 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Mỗi phần tử liên kết với phần tử đứng liền sau trong danh sách Mỗi phần tử trong danh sách liên kết đơn là một cấu trúc có hai thành phần Thành phần dữ liệu: Lưu trữ thông tin về bản thân phần tử Thành phần liên kết: Lưu địa chỉ phần tử đứng sau trong danh sách hoặc bằng NULL nếu là phần tử cuối danh sách. 2 CTDL của DSLK đơn Cấu trúc dữ liệu của 1 nút trong List đơn typedef struct tagNode { Data Info; // Lưu thông tin bản thân CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT struct tagNode *pNext; //Lưu địa chỉ của Node đứng sau }Node; Cấu trúc dữ liệu của DSLK đơn pNext typedef struct tagList Info { Node *pHead;//Lưu địa chỉ Node đầu tiên trong List Node *pTail; //Lưu địa chỉ của Node cuối cùng trong List }LIST; // kiểu danh sách liên kết đơn 3 Ví dụ tổ chức DSLK đơn trong bộ nhớ pHead pTail CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 3f 4f 5f 4 4f 7 5f 6 NULL Trong ví dụ trên thành phần dữ liệu là 1 số nguyên 4 Các thao tác cơ bản trên DSLK đơn Tạo 1 danh sách liên kết đơn rỗng Tạo 1 nút có trường Infor bằng x CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Tìm một phần tử có Info bằng x Thêm một phần tử có khóa x vào danh sách Hủy một phần tử trong danh sách Duyệt danh sách Sắp xếp danh sách liên kết đơn 5 Khởi tạo danh sách liên kết Địa chỉ của nút đầu tiên, địa chỉ của nút cuối cùng đều không có CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT void CreateList(List &l) { l.pHead=NULL; l.pTail=NULL; } 6 Tạo 1 phần tử mới Hàm trả về địa chỉ phần tử mới tạo Node* CreateNode(Data x) { Node *p; CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT p = new Node;//Cấp phát vùng nhớ cho phần tử if ( p==NULL) exit(1); p ->Info = x; //gán dữa liệu cho nút p->pNext = NULL; return p; } 7 Thêm 1 phần tử vào DSLK Nguyên tắc thêm: Khi thêm 1 phần tử vào List thì có làm cho pHead, pTail thay đổi? CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Các vị trí cần thêm 1 phần tử vào List: Thêm vào đầu List đơn Thêm vào cuối List Thêm vào sau 1 phần tử q trong list 8 Thuật toán thêm 1 phần tử vào đầu DSLK Thêm nút p vào đầu danh sách liên kết đơn Bắt đầu: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Nếu List rỗng thì + pHead = p; + pTail = pHead; Ngược lại + p->pNext = pHead; + pHead = p ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 4 - ĐH Công nghệ Đồng Nai CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NỘI DUNG DANH SÁCH LIÊN KẾT ĐƠN (LIST) 1 Tổ Chức Của DSLK Đơn x2 x0 x3 x1 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Mỗi phần tử liên kết với phần tử đứng liền sau trong danh sách Mỗi phần tử trong danh sách liên kết đơn là một cấu trúc có hai thành phần Thành phần dữ liệu: Lưu trữ thông tin về bản thân phần tử Thành phần liên kết: Lưu địa chỉ phần tử đứng sau trong danh sách hoặc bằng NULL nếu là phần tử cuối danh sách. 2 CTDL của DSLK đơn Cấu trúc dữ liệu của 1 nút trong List đơn typedef struct tagNode { Data Info; // Lưu thông tin bản thân CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT struct tagNode *pNext; //Lưu địa chỉ của Node đứng sau }Node; Cấu trúc dữ liệu của DSLK đơn pNext typedef struct tagList Info { Node *pHead;//Lưu địa chỉ Node đầu tiên trong List Node *pTail; //Lưu địa chỉ của Node cuối cùng trong List }LIST; // kiểu danh sách liên kết đơn 3 Ví dụ tổ chức DSLK đơn trong bộ nhớ pHead pTail CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 3f 4f 5f 4 4f 7 5f 6 NULL Trong ví dụ trên thành phần dữ liệu là 1 số nguyên 4 Các thao tác cơ bản trên DSLK đơn Tạo 1 danh sách liên kết đơn rỗng Tạo 1 nút có trường Infor bằng x CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Tìm một phần tử có Info bằng x Thêm một phần tử có khóa x vào danh sách Hủy một phần tử trong danh sách Duyệt danh sách Sắp xếp danh sách liên kết đơn 5 Khởi tạo danh sách liên kết Địa chỉ của nút đầu tiên, địa chỉ của nút cuối cùng đều không có CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT void CreateList(List &l) { l.pHead=NULL; l.pTail=NULL; } 6 Tạo 1 phần tử mới Hàm trả về địa chỉ phần tử mới tạo Node* CreateNode(Data x) { Node *p; CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT p = new Node;//Cấp phát vùng nhớ cho phần tử if ( p==NULL) exit(1); p ->Info = x; //gán dữa liệu cho nút p->pNext = NULL; return p; } 7 Thêm 1 phần tử vào DSLK Nguyên tắc thêm: Khi thêm 1 phần tử vào List thì có làm cho pHead, pTail thay đổi? CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Các vị trí cần thêm 1 phần tử vào List: Thêm vào đầu List đơn Thêm vào cuối List Thêm vào sau 1 phần tử q trong list 8 Thuật toán thêm 1 phần tử vào đầu DSLK Thêm nút p vào đầu danh sách liên kết đơn Bắt đầu: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Nếu List rỗng thì + pHead = p; + pTail = pHead; Ngược lại + p->pNext = pHead; + pHead = p ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu và giải thuật Bài giảng Cấu trúc dữ liệu và giải thuật Liên kết đơn Cài đặt thuật toán Cài đặt hàm min Ứng dụng Stack và QueueTài liệu có liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 360 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 187 0 0 -
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 172 0 0 -
57 trang 171 1 0
-
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 166 0 0 -
3 trang 165 3 0
-
10 trang 145 0 0
-
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 4: Một số giải thuật sắp xếp và tìm kiếm
29 trang 125 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 1 - Trần Hạnh Nhi
98 trang 122 0 0 -
49 trang 87 0 0