... HÀNGĐỢI (QUEUE) • ĐỊNH NGHĨA • CÁC PHÉP TOÁN • CÀI ĐẶT HÀNGĐỢI – DÙNG MẢNG DI CHUYỂN TỊNH TIẾN – DÙNG MẢNG VÒNG – DÙNG DSLK ĐỊNH NGHĨA HÀNGĐỢI • Là dạng danhsách đặc biệt, ... DỤNG CỦA NGĂN XẾP VÀ HÀNGĐỢI • Bạn liệt kê số ứng dụng có sử dụng – Ngăn xếp – Hàngđợi 33 DANHSÁCHLIÊNKẾT KÉP • Mô hình Prev Element Next – Trong phần tử danh sách, ta dùng hai trỏ Next Previous ... xem hàngđợi Q có rỗng không FULL_QUEUE(Q) KiÓm tra xem hµng ®îi Q cã ®Çy kh«ng ENQUEUE(X,Q) Thêm phần tử X vào cuối hàngđợi Q DEQUEUE(Q) Xóa phần tử đầu hàngđợi Q FRONT(Q) Trả phần tử hàng đợi...
... băm nối kết Các phần tử chứa bảng băm có kích thước nhỏ: phần tử cần chứa trỏ đến ô sống Như vậy, với bảng băm nối kết, kích thước ghi tăng 100% phải chứa thêm trỏ liênkếtdanhsáchliênkết Tuy ... Việc duyệt danhsách để xác nhận có mặt phần tử hay không không hiệu phương pháp băm biết Đối với ô có Giáo trình Cấu trúc liệu Giải thuật 407 Chương 18 – Ứng dụngdanhsáchliênkết bảng băm ... dụngdanhsáchliênkết bảng băm 18.4.1 Phiên thứ cho lớp Life Trong phiên thứ này, chưa sử dụng lớp CTDL có sẵn nào, mà suy nghó đơn giản đối tượng Life cần mảng hai chiều số nguyên để biểu diễn...
... Stack dùngdanhsáchliênkết hoàn toàn giống danhsáchliênkết thuận, có điều khác thêm phần tử hay huỷ phần tử ta luôn làm đầu danhsách Do ta phải trì trỏ Top để trỏ vào phần tử danhsách ... END Hàngđợidùngdanhsáchliênkết Queue danhsách mà việc thêm phần tử thực đuôi queue, việc huỷ phần tử thực đầu queue Queue giống dãy khách hàng xếp hàng trả tiền siêu thị, người xếp hàng ... trước khỏi hàng, người tham gia xếp hàng xếp vào cuối hàng Do queue có tên gọi FIFO (first in first out – vào trước trước) Queue dùngdanhsáchliênkết hoàn toàn giống danhsáchliênkết thuận...
... băm nối kết Các phần tử chứa bảng băm có kích thước nhỏ: phần tử cần chứa trỏ đến ô sống Như vậy, với bảng băm nối kết, kích thước ghi tăng 100% phải chứa thêm trỏ liênkếtdanhsáchliênkết Tuy ... Việc duyệt danhsách để xác nhận có mặt phần tử hay không không hiệu phương pháp băm biết Đối với ô có Giáo trình Cấu trúc liệu Giải thuật 407 Chương 18 – Ứng dụngdanhsáchliênkết bảng băm ... dụngdanhsáchliênkết bảng băm 18.4.1 Phiên thứ cho lớp Life Trong phiên thứ này, chưa sử dụng lớp CTDL có sẵn nào, mà suy nghó đơn giản đối tượng Life cần mảng hai chiều số nguyên để biểu diễn...
... III CÁC LOẠI DANHSÁCH KHÁC Danhsáchliênkết kép (doubly linked list) pPre NULL pNext NULL pFirst struct nodeDB { int info; ... InsertDBList (int x, nodeDB* &DL); void DeleteDBList (int x, nodeDB* &DL); III CÁC LOẠI DANHSÁCH KHÁC Danhsáchliênkết vòng (circular linked list) pNext pFirst struct node { int info; node* pNext;...
... Move(N-1,C,B,A); } II HÀNGĐỢI (QUEUE) Định Nghĩa II HÀNGĐỢI (QUEUE) Định Nghĩa Hàng đợi, hay ngắn gọn hàng (queue) danhsách đặc biệt mà phép thêm vào thực đầu danh sách, gọi cuối hàng (REAR), phép ... phép loại bỏ thực đầu danh sách, gọi đầu hàng (FRONT) Xếp hàng mua vé xem phim hình ảnh trực quan khái niệm trên, người đến thêm vào cuối hàng người đầu hàng mua vé khỏi hàng, hàng gọi cấu trúc FIFO ... out) hay "vào trước - trước" FRONT REAR 1 42 13 14 II HÀNGĐỢI (QUEUE) Khai báo cấu trúc liệu cho hàngđợi Khai báo hàngđợi mảng Khai báo hàngđợi dạng DSLK # define size 200 struct node { struct...
... pFirst = p; } II DANHSÁCHLIÊNKẾT ĐƠN Các phép toán danhsáchliênkết 4.2 Thêm vào đầu danhsách NULL x x x pFirst p p p II DANHSÁCHLIÊNKẾT ĐƠN Các phép toán danhsáchliênkết 4.3 Chèn ... II DANHSÁCHLIÊNKẾT ĐƠN Các phép toán danhsáchliênkết 4.3 Chèn node sau node có địa p NULL q x pFirst p II DANHSÁCHLIÊNKẾT ĐƠN Các phép toán danhsáchliênkết 4.4 Kiểm tra danhsách ... không liên tục) II DANHSÁCHLIÊNKẾT ĐƠN Khái niệm II DANHSÁCHLIÊNKẾT ĐƠN Khái niệm info pNext pFirst NULL pFirst trỏ đến phần tử danhsách Phần tử cuối danhsáchliênkết với vùng liên kết...
... xếp, hàngđợidanhsách móc nối Null L I R L I R L I R Null Hình 3.8 Mô tả danhsáchliênkết kép Các thao tác danhsáchliênkết kép tương tự danhsáchliênkết đơn Nhưng cần ý rằng, node p danh ... hàng đợi, thao tác hàngđợi ứng dụnghàngđợi Bản chất động tính chất danhsáchliênkết đơn liênkết kép Sự khác biệt danhsáchliênkết đơn danhsáchliênkết kép trỏ left right Những ứng dụng ... Sơ đồ biểudiễndanhsách móc nối đơn biểudiễn hình đây: Phần_tử Phần_tử Phần_tử Hình 3.4 Danhsách móc nối đơn 62 Chương 3: Ngăn xếp, hàngđợidanhsách móc nối Tổng quát hơn, đỉnh danh sách...
... tả danhsáchliênkết kép Null L R L R L R Null Các thao tác danhsáchliênkết kép tương tự danhsáchliênkết đơn Nhưng cần ý rằng, node p danhsáchliênkết kép có hai đường liênkết p-> left ... cuối danhsách • Nếu danhsách rỗng không cần loại bỏ; • Nếu danhsách có node truờng hợp loại phần tử đầu danh sách; • Nếu danhsách có nhiều node • Chuyển trỏ tới node cuối cùng; • Ngắt liênkết ... danhsáchliênkết kép*/ void Freenode( NODEPTR p){ free(p); } /* Khởi động danhsáchliênkết kép*/ 178 void Initialize(NODEPTR *plist){ *plist=NULL; } /* Kiểm tra tính rỗng danhsáchliên kết...
... Stack::push(T x){ Node *t = new Node; t->info = x; t->next = top; top = t; } Operator= Mục đích: dùng để gán stack S cho stack T Sử dụng: T = S; Đầu vào: stack S Đầu ra: stack T giống stak S vị...
... HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN KHOA HỌC MÁY TÍNH -*** - BÀI TẬP LỚN HỌC PHẦN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Mã đề tài: 02 Tên đề tài Xây dựng lớp LinkList để lưu trữ danhsách ... LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Mã đề tài: 02 Tên đề tài Xây dựng lớp LinkList để lưu trữ danhsáchliênkết đơn chứa liệu số nguyên Lớp LinkList có phương thức: khởi tạo, thêm, bớt phần tử, xếp, tìm...
... Danhsáchliênkết đơn Danhsáchliênkết kép Danhsáchliênkết vòng Chương 6: Danhsáchliênkết Giới thiệu - Danhsáchliênkết 10 Danhsáchliênkết đơn: phần tử liênkết với phần ... sau danh sách: A B X Z Y Danhsáchliênkết kép: phần tử liênkết với phần tử đứng trước sau danh sách: A Chương 6: Danhsáchliênkết B C D Giới thiệu - Danhsáchliênkết 11 Danhsáchliên ... tác danhsáchliên kết: Thêm phần tử Xóa phần tử Tìm kiếm … Chương 6: Danhsáchliênkết Giới thiệu - Danhsáchliênkết Có nhiều kiểu tổ chức liênkết phần tử danhsách như: Danh sách...
... ->Next; } return length; } Thêm phần tử vào cuối linked list: Nếu danhsách rỗng, thêm nút vào head Ngược lại, tìm phần tử cuối danhsách thêm nút vào Next nút cuối đó: void AddLast(LLNode** head, ... tiên: Nếu danhsách khác rỗng, đưa phần tử Next lên phía trước void RemoveFirst(LLNode** head) { LLNode** tmp = head; if ((*tmp) != NULL) { (*tmp) = (*tmp)->Next; } } Tìm kiếm phần tử danh sách: ... while ((*tmp)->Next != NULL) { tmp = &((*tmp)->Next); } } (*tmp) = NULL; } Thêm phần tử vào đầu danh sách: void AddFirst(LLNode** head, int Data) { LLNode** tmp = head; LLNode* NewNode; NewNode...
... Danhsáchliênkết đơn Lý sử dụng ds liênkết Thêm vào danhsáchliên tục(mảng) z a b c d e f g h count=9 count=8 insert(3, ‘z’) ... count=8 remove(3, x) X=d infor Next Dữ liệu L Trường liênkết Next Next DANHSÁCHLIÊNKẾT ĐƠN ĐỊNH NGHĨA NÚT KHAI BÁO CON TRỎ L TRỎ ĐẾN ĐẦU DANHSÁCH typedef struct Node{ Data infor; Node * next; ... End; Khai báo trỏ L Node * L; Ví dụ tạo danhsáchliênkết đơn số nguyên typedef struct Node { int infor; Node * next; }; Node *L; Ví dụ tạo danhsáchliênkết đơn sinh viên typedef struct sinhvien...