... Chương 18 – Ứngdụngdanhsáchliênkết bảng băm Hình 18.1- Một trang thái Game of Life Với trạng thái khởi đầu đó, khó lường trước điều xảy Một vài cấu hình đơn giản ban đầu biến đổi ... liệu Giải thuật 403 Chương 18 – Ứngdụ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 ... 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 – Ứngdụngdanhsáchliênkết bảng băm...
... Chương 18 – Ứngdụngdanhsáchliênkết bảng băm Hình 18.1- Một trang thái Game of Life Với trạng thái khởi đầu đó, khó lường trước điều xảy Một vài cấu hình đơn giản ban đầu biến đổi ... liệu Giải thuật 403 Chương 18 – Ứngdụ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 ... 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 – Ứngdụngdanhsáchliênkết bảng băm...
... ngăn xếp phạm vi sử dụng hết Sử dung: chương trình tự gọi template Stack::~Stack(){ makeEmpty(); } Kiểm tra Stack rỗng? Mục đích: Kiểm tra stack S có rỗng không Sử dụng: S.isEmpty(); ... NULL; *this = r; } return *this; } Chú ý: Để sử dụng stack ST lưu trữ kiểu T khai báo theo cú pháp Stack ST; lớp có thuộc tính trỏ muốn sử dụng template cần định nghĩa chồng tóan tử gán “operator=” ... return top->info; } Làm rỗng từ stack có Mục đích: Làm rỗng stack S để tối ưu nhớ cần thiết Sử dụng: S.makeEmpty(); Đầu vào: stack S Đầu ra: stack S rỗng Code: template void Stack::makeEmpty(){...
... 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á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,...
... 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’) ... DSLK đơn TẠO DANHSÁCH RỖNG THÊM MỘT PHẦN TỬ VÀO CUỐI DANHSÁCH THÊM MỘT PHẦN TỬ SAU MỘT PHẦN TỬ KHÁC XÓA MỘT PHẦN TỬ RA KHỎI DANHSÁCH GHÉP NỐI DSLK ĐƠN THÀNH MỘT DSLK ĐƠN 12 TẠO DANHSÁCH RỖNG ... 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...
... sau danhsách - Danhsáchliênkết đôi/kép: phần tử liênkết với phần tử ứng trước sau danhsách - Danhsáchliênkết vòng: phần tử cuối danhsáchliênkết với phần tử đầu danhsách 1.3 Danhsách ... sinh viên danhsáchliênkếtđơn CHƯƠNG 1: CƠ SỞ LÝTHUYẾT Tổng quan danhsáchliênkết 1.1 Định nghĩa Danhsáchliênkếtdanhsách mà phần tử ( Node) liênkết với nhờ vào vùng liênkết chúng ... phần liênkếtdùng để liênkết tới node khác 1.2 Phân loại Tùy cách liênkết phần tử, danhsáchliênkết gồm có nhiều loại khác nhau: - Danhsáchliênkết đơn: phần tử liênkết với phần tử đứng...
... Bài 3: cho danhsách sinh viên sinh viên gồm thông tin: MSSV, họ tên, đ 1: Nhập danhsách sinh viên 2: Xuất danhsách sinh viên 3: Xoá sinh viên với MSSV khỏi danhsách 4: Sắp xếp danhsách tăng ... p=p->pNext; } Init(l); } Bài 2: cho danhsáchliênkết l1 l2, gồm phần tử số nguyên, thực 1: xếp l1 l2 tắng dần 2: nối l1 l2 thành l3 cho l3 tăng dần file noidanhsachtang.h Code: #ifndef NOIDS ... if(l2.pHead==NULL) { cout
... giải Thêm phần tử có khóa x vào danhsách Hủy phần tử danhsách Duyệt danhsách Sắp xếp danhsáchliênkếtđơn Khởi tạo danhEdit Master Click To sáchliênkết Title Style Địa nút đầu tiên, ... To DSLK Đơn CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu thuật giải x0 x1 x2 Title Style x3 Mỗi phần tử liênkết với phần tử ứngliền sau danhsách Mỗi phần tử danhsáchliênkếtđơn cấu ... liệu: Lưu trữ thông tin thân phần tử Thành phần liên kết: Lưu địa phần tử ứng sau danhsách NULL phần tử cuối danhsách Click CTDL DSLK đơn To Edit Master Title Style CẤU TRÚC DỮ LIỆU VÀ...
... *Trường hợp 1: Nếu l rỗng kết thúc *Trường hợp 2: Nếu danhsách có phần tử xóa đầu Ngược lại: B1: pTruoc trỏ ứng trước trỏ cuối danhsách B2: Cho pTruoc trỏ tới NULL B3: Xóa trỏ ... DSLK đơn l, node p để xác định node cần xóa - Kết quả: DSLK đơn l sau xóa trước phần tử p - Giải thuật: *Trường hợp 1: Nếu p trỏ đầu kết thúc *Trường hợp 2: (p khác trỏ đầu) B1: pTruoc trỏ ứng ... DSLK đơn l, node p để xác định node cần xóa - Kết quả: DSLK đơn l sau xóa phần tử sau p - Giải thuật: *Trường hợp 1: Nếu p trỏ cuối kết thúc *Trường hợp 2: (p khác trỏ cuối) B1: pSau trỏ đứng...
... giải Thêm phần tử có khóa x vào danhsách Hủy phần tử danhsách Duyệt danhsách Sắp xếp danhsáchliênkếtđơn Khởi tạo danhEdit Master Click To sáchliênkết Title Style Địa nút đầu tiên, ... To DSLK Đơn CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu thuật giải x0 x1 x2 Title Style x3 Mỗi phần tử liênkết với phần tử ứngliền sau danhsách Mỗi phần tử danhsáchliênkếtđơn cấu ... liệu: Lưu trữ thông tin thân phần tử Thành phần liên kết: Lưu địa phần tử ứng sau danhsách NULL phần tử cuối danhsách Click CTDL DSLK đơn To Edit Master Title Style CẤU TRÚC DỮ LIỆU VÀ...
... vào: DSLK đơn l, phần tử p cần thêm - Kết quả: DSLK đơn l sau thêm - Giải thuật: *Trường hợp 1: Nếu l rỗng Con trỏ đầu cuối danhsách = p *Trường hợp 2: (l khác rỗng) B1: Con trỏ cuối danhsách trỏ ... - Đầu vào: DSLK đơn l, phần tử k cần thêm phần tử p - Kết quả: DSLK đơn l sau thêm k sau p - Giải thuật: *Trường hợp 1: Nếu p trỏ cuối danhsách Thêm k vào cuối danhsách l *Trường hợp 2: ... - Đầu vào: DSLK đơn l - Kết quả: DSLK đơn l sau xóa phần tử đầu - Giải thuật: *Trường hợp 1: Nếu l rỗng kết thúc *Trường hợp 2: (l khác rỗng) B1: pXoa trỏ đầu danhsách B2: Cho trỏ đầu trỏ...
... DSLK đơn l, điều kiện bên (nếu có: ví dụ giá trị x để so sánh) - Kết quả: Trả số lượng phần tử thỏa điều kiện danhsách - Giải thuật: B1: d=0 p trỏ vào đầu danhsách B2: Nếu p = NULL trả d Kết ... Đầu vào: DSLK đơn l, điều kiện bên (nếu có: ví dụ giá trị x để so sánh) - Kết quả: Trả thỏa điều kiện, ngược lại trả - Giải thuật: B1: p trỏ vào đầu danhsách B2: Nếu p = NULL trả Kết thúc B3: ... Nếu giá trị p thỏa điều kiện Trả Kết thúc B4: p trỏ đến phần tử kế tiếp, quay lại B2 - Cài đặt (Giả sử kiểm tra xem danhsách có tồn phần tử có giá trị lẻ danhsách số nguyên): int KiemTraTonTaiLe(LIST...
... - Đầu vào: DSLK đơn l - Kết quả: In giá trị phần tử danhsách hình - Giải thuật: B1: p trỏ đầu danhsách B2: Nếu p = NULL kết thúc Ngược lại In giá trị p B3: p trỏ đến ... - Đầu vào: DSLK đơn l - Kết quả: In giá trị phần tử danhsách thỏa điều kiện hình - Giải thuật: B1: p trỏ vào đầu danhsách B2: Nếu p = NULL kết thúc B3: Nếu giá trị p thỏa điều ... - Đầu vào: DSLK đơn l - Kết quả: Trả trỏ chứa giá trị chẵn lớn (hoặc NULL: Nếu chẵn) - Giải thuật: B1: pMaxChan phần tử chẵn danhsách Nếu chẵn trả NULL Kết thúc B2: p trỏ vào sau...
... DSLK đơn l, giá trị x - Kết quả: Trả trỏ tìm (hoặc NULL: Nếu x) - Giải thuật: B1: p trỏ vào đầu danhsách B2: Nếu p = NULL trả NULL Kết thúc Ngược lại sang B3 B3: Nếu giá trị p = x trả p Kết thúc ... Đầu vào: DSLK đơn l - Kết quả: Trả trỏ max tìm - Giải thuật: B1: pMax trỏ vào đầu danhsách p trỏ vào sau pMax B2: Nếu p = NULL trả pMax Kết thúc Trang GV: Trần Minh Thái ... - Đầu vào: DSLK đơn l - Kết quả: Trả trỏ chứa giá trị chẵn tìm (hoặc NULL: Nếu chẵn) - Giải thuật: B1: p trỏ vào đầu danhsách B2: Nếu p = NULL trả NULL Kết thúc Ngược lại sang B3...
... Tổ chức DSLK đơn x0 x1 x2 Mỗi phần tử liênkết với phần tử ứngliền sau danhsách • Cấu trúc liệu thuật giải x3 Mỗi phần tử danhsáchliênkếtđơn cấu trúc có hai thành phần ... – Thêm vào đầu danhsách – Thêm vào cuối danhsách – Thêm vào sau phần tử Cấu trúc liệu thuật giải • Hủy phần tử danhsách – Hủy phần tử đầu danhsách – Hủy phần tử cuối danhsách – Hủy phần ... khoá x Duy ệt danhsách Sắp xếp danhsáchliênkếtđơn Tìm phần tử DSLK đơn T ìm (hàm trả về), bước thuật toán tìm nút có Info x list đơn Bước 1: p=pHead;// địa phần tử đầu list đơn Bước 2:...
... 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 (đỉnh ... trước trước) Queue 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ử ta luôn nối vào cuối danh sách, huỷ phần tử ta huỷ phần tử danhsách Do ta phải trì ... firstNIL DO BEGIN last:= first; first:= first^.next; dispose(last) END; END Danhsáchliênkết kép Danhsáchliênkết kép danhsách mà phần tử gồm ba thành phần: phần liệu, trỏ next chứa địa phần tử...
... DSLK đơn l Kết quả: DSLK đơn l sau xóa phần tử cuối Giải thuật: *Trường hợp 1: Nếu l rỗng kết thúc *Trường hợp 2: Nếu danhsách có phần tử xóa đầu Ngược lại: B1: pTruoc trỏ ứng trước trỏ cuối danh ... - - Đầu vào: DSLK đơn l Kết quả: In giá trị phần tử danhsách thỏa điều kiện hình Giải thuật: B1: p trỏ vào đầu danhsách B2: Nếu p = NULL kết thúc B3: Nếu giá trị p thỏa điều ... - - Đầu vào: DSLK đơn l Kết quả: Trả số lượng phần tử danhsách Giải thuật: B1: d=0 p trỏ vào đầu danhsách B2: Nếu p = NULL trả d Kết thúc B3: d=d+1 B4: p trỏ đến phần tử...