TAILIEUCHUNG - Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 3 - Đỗ Ngọc Như Loan

Bài giảng "Cấu trúc dữ liệu và giải thuật - Chương 3: Danh sách (List)" cung cấp cho người học các kiến thức: Danh sách liên kết đơn, các thao tác trên danh sách liên kết, listInsert, listwalk (duyệt ds),. . | GV: Đỗ Ngọc Như Loan 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 Danh sách liên kết đơn Danh sách liên kết đơn là một tập các nút biểu diễn cấu trúc dữ liệu gồm các đối tượng được sắp đặt theo một trật tự tuyến tính Trật tự tuyến tính trong danh sách liên kết được xác định bởi các pointer kết hợp với mỗi đối tượng Danh sách liên kết cung cấp một sự biểu diễn mềm dẻo và đơn giản cho các tập động, hỗ trợ các thao tác như tìm kiếm, chèn, xóa Ví dụ về một danh sách liên kết đơn Mỗi nút x trong DS lưu trữ một đối tượng có một khóa (có thể có thông tin khác) và một pointer next chỉ đến nút (đối tượng) kế tiếp Nếu next[x]= NULL, thì x là nút cuối cùng còn gọi là đuôi của danh sách Danh sách L là rỗng khi L = NULL Các thao tác trên danh sách liên kết ListInitialize (L) ListSearch (L, k) ListInsert (L, k) ListDelete (L, k) ListWalk (L) ĐỊNH NGHĨA DANH SÁCH LIÊN KẾT ĐƠN TRONG C++ Danh sách các đối tượng có khóa là số nguyên typedef struct CELL *LIST; struct CELL { int key; LIST next; }; LIST L; ListInitialize void ListInitialize(LIST &L) { L=NULL; } ListSearch Thao tác ListSearch(L, k) tìm một đối tượng có khóa k trong danh sách L Nếu có đối tượng có khóa k, thủ tục sẽ trả về một pointer chỉ đến đối tượng này Nếu không có đối tượng nào có khóa bằng k trong danh sách, thủ tục trả về NULL ListSearch LIST ListSearch(LIST L, int k) { LIST x; x=L; while(x!=NULL && x->key!=k) x=x->next; return x; } ListInsert Thao tác ListInsert(L, k) thực hiện đơn giản bằng cách chèn đối tượng x có khóa k vào đầu của L ListInsert void ListInsert(LIST &L, int k) { LIST x; x=new(CELL); x->key=k; x->next=L; L=x; } ListDelete Thao tác ListDelete(L, k) xóa đối tượng x có khóa k khỏi L Được thực hiện bằng cách tìm x và cập nhật lại các con trỏ nút y đi trước x để loại x ra khỏi danh sách ListDelete void ListDelete(LIST &L,int k) { LIST x, y; if(L!= NULL) { y= NULL; x =L; while(x!=NULL && x->key!=k) { y=x; x=x->next; } if(x!=NULL) //Tìm thấy { if(y==NULL) L=x->next; //nút .

TỪ KHÓA LIÊN QUAN
TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.