Bài giảng Cấu trúc dữ liệu và giải thuật - Danh sách liên kết đơn (List)
Thông tin tài liệu:
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 - Danh sách liên kết đơn (List) 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 pNex typedef struct tagList Info t { 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:
Bài giảng Cấu trúc dữ liệu Danh sách liên kết đơn Cấu trúc dữ liệu Liên kết đơn Khởi tạo danh sách liên kết Thuật toán liên kết đơnGợi ý tài liệu 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 318 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 163 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 150 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 139 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 124 0 0 -
Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 3 - Một số mô hình thuật toán
42 trang 74 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 74 0 0 -
Ứng dụng và cài đặt cấu trúc dữ liệu bằng C: Phần 1
338 trang 73 0 0 -
49 trang 72 0 0
-
Bài giảng Cơ sở dữ liệu: Chương 3 - ThS. Hoàng Mạnh Hà
67 trang 70 0 0 -
54 trang 70 0 0
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Phần 1 - ThS. Hoàng Thế Phương
128 trang 67 0 0 -
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Ngô Công Thắng
8 trang 66 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Lê Văn Vinh
67 trang 57 1 0 -
Giáo trình CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - Chương 1
5 trang 51 0 0 -
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - ThS. Trịnh Quốc Sơn (ĐH Công nghệ Thông tin)
20 trang 50 0 0 -
Cấu trúc dữ liệu và Ngôn ngữ lập trình C
261 trang 44 0 0 -
Đề kiểm tra giữa học kì 1, môn : Cấu trúc dữ liệu và giải thuật
3 trang 42 1 0 -
514 trang 35 0 0