TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TP HCM KHOA CÔNG NGHỆ THÔNG TIN CÂU HỎI & BÀI TẬP ÔN TẬP MƠN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT (Khóa 9) Câu 1: Cho dãy số 23 21 30 40 15 19 25 21 a Hãy minh hoạ kết thực bước xếp theo thứ tự tăng giải thuật đổi chỗ trực tiếp (Interchange Sort) b Hãy viết giải thuật mã tự nhiên cài đặt hàm ngôn ngữ C/ C++ cho giải thuật đổi chỗ trực tiếp c Giả sử cần tìm phần tử có giá trị 21, cho biết vị trí tìm thấy áp dụng giải thuật tìm nhị phân dãy số xếp câu a (Dãy đánh số 0) Ôn tập kỹ giải thuật xếp khác (minh họa bước cài đặt hàm): - Chọn trực tiếp (Selection Sort) - Chèn trực tiếp (Insertion Sort) - Nổi bọt (Bubble Sort) Câu 2: Cho khai báo cấu trúc danh sách liên kết đơn số nguyên hàm cài đặt sẵn ngôn ngữ C++ sau: struct tnode { int data; struct tnode *pNext; }; typedef struct tnode NODE; struct tlist { NODE *pHead, *pTail; }; typedef struct tlist LIST; Stt Mẫu hàm void XoaDau(LIST &list); void XoaCuoi(LIST &list); Mơ tả Xóa node (pHead) danh sách list Xóa node cuối (pTail) danh sách list Xóa node pDel có danh sách list void XoaNode(LIST &list, NODE *pDel); Hãy cài đặt bổ sung hàm sau: Stt Mẫu hàm Mơ tả Đếm trả số lượng node có giá trị lớn x cho int DemX(LIST list, int x); trước void InSoNguyenTo(LIST list); In giá trị số nguyên tố danh sách list Tìm trả node có giá trị lớn danh sách NODE *TimMax(LIST list); list void XoaMax(LIST &list); Xóa node có giá trị lớn khỏi danh sách list Page of Ôn tập kỹ thao tác danh sách liên kết số nguyên (minh họa bước cài đặt hàm): - Thêm node vào danh sách - Duyệt danh sách để xác định số lượng node, tìm kiếm node, xuất giá trị node, tính tổng giá trị trung bình node danh sách - Xóa node khỏi danh sách Câu 3: Cho khai báo cấu trúc hàng đợi số nguyên (quece) tổ chức mảng chiều sau: typedef struct QUEUE { int *QArray; //Mảng chứa hàng đợi int QMax; //Số lượng phần tử tối đa int QNumItems; //Số lượng phần tử hàng đợi int QFront; //Vị trí phần tử đầu hàng đợi int QRear; //Vị trí phần tử cuối hàng đợi }; Giả sử có hàng đợi với thơng tin sau: Chỉ số mảng Qarray 15 21 QMax QNumItems QFront QRear Hãy cho biết thông tin cấu trúc hàng đợi thực thao tác (sử dụng phương pháp hàng đợi xoay vòng để tránh hàng đợi bị “tràn giả”): a Thêm giá trị 111 vào hàng đợi b Lấy giá trị khỏi hàng đợi c Thêm giá trị 555 vào hàng đợi Câu 4: Sử dụng lại dãy số ban đầu câu 1, thực yêu cầu sau: a Vẽ nhị phân tìm kiếm (theo thứ tự nhập từ trái sang phải) b Vẽ lại nhị phân tìm kiếm chèn thêm nút có giá trị: 10, 14 35 c Sau vẽ lại câu 4b, cho biết: - Cho biết nút có trái - Các đường xuất phát từ gốc có độ dài - Độ cao d Trình bày bước duyệt (câu 4b) theo thứ tự trước (NLR) e Trình bày bước xóa nút có giá trị: 21 23 Ơn tập thêm nhị phân tìm kiếm: - Các khái niệm bậc nút, nút lá, nút nhánh, độ dài đường (tính số nhánh cần phải qua), độ cao cây, nút mức (nút gốc tính mức 0) - Các thao tác duyệt cây: NLR, LNR LRN - Xóa nút khỏi cây: Xóa nút lá, xóa nút nhánh xóa nút có (tìm phần tử mạng) Page of ... họa bước cài đặt hàm): - Thêm node vào danh sách - Duyệt danh sách để xác định số lượng node, tìm kiếm node, xuất giá trị node, tính tổng giá trị trung bình node danh sách - Xóa node khỏi danh... chèn thêm nút có giá trị: 10, 14 35 c Sau vẽ lại câu 4b, cho biết: - Cho biết nút có trái - Các đường xuất phát từ gốc có độ dài - Độ cao d Trình bày bước duyệt (câu 4b) theo thứ tự trước (NLR)... phân tìm kiếm: - Các khái niệm bậc nút, nút lá, nút nhánh, độ dài đường (tính số nhánh cần phải qua), độ cao cây, nút mức (nút gốc tính mức 0) - Các thao tác duyệt cây: NLR, LNR LRN - Xóa nút khỏi