Thực hành ngôn ngữ lập trình C++ - Bài thực hành tuần 13
Xây dựng lớp cây nhịphân lưu trữsốnguyên với một sốdữliệu và phương thức cơbản nhưsau:
struct Node{
int data;
Node *left, *right ; };
class BSearchTree {
private:
Node *root ; public:
BSearchTree(); // constructor BSearchTree(const BSearchTree &tree); // constructor copy
~BSearchTree(); // destructor
void add(int x); // chèn một sốnguyên vào cây
int find(int x); // tìm một sốnguyên x trong cây
string show() ;// in ra xâu kết quảduyệt trung thứtự(con trái – cha – con phải) của cây hiện tại
};
Bài tập lập trình tuần 13 Bài 1: Xây dựng lớp cây nhị phân lưu trữ số nguyên với một số dữ liệu và phương thức cơ bản như sau: struct Node{ int data; Node *left, *right ; }; class BSearchTree { private: Node *root ; public: BSearchTree(); // constructor BSearchTree(const BSearchTree &tree); // constructor copy ~BSearchTree(); // destructor void add(int x); // chèn một số nguyên vào cây int find(int x); // tìm một số nguyên x trong cây string show() ;// in ra xâu kết quả duyệt trung thứ tự (con trái – cha – con phải) của cây hiện tại }; 1) Hãy viết hoàn chỉnh lớp này 2) Ứng dụng trong việc đưa danh sách các số sau vào cây: 5 4 7 12 3 6 1 Bài 2: 1) Tổng quát hóa bài trên với việc xây dựng lớp BSearchTree cho đối tượng T tổng quát. template class BSearchTree { }; 2) Áp dụng với đối tượng T là SinhVien class SinhVien { private: int code ; // mã sinh viên int diem; // điểm sinh viên string ten; // tên sinh viên }; Hãy hoàn thiện lớp SinhVien này (và các toán tử cần thiết) và viết chương trình áp dụng để lưu trữ và tìm kiếm sinh viên theo mã sinh viên. Bài 3: Cho một lớp cơ sở ảo như sau: class BaseSV { protected: string ten ; int diem; public: void setData(string t, int d) { ten = t; diem = d ; } void getData(string &t, int &d) { t = ten; d = diem; } virtual void show() = 0 ; }; Hãy xây dựng 2 lớp thừa kế từ lớp BaseSV: a) SinhVienIT ; // sinh viên khoa Công Nghệ Thông tin, hãy tự thêm vào các thông tin cần thiết (ví dụ: ngôn ngữ lập trình sở trường), viết rõ hàm show. b) SinhVienNN; // sinh viên ngoại ngữ, hãy tự thêm vào các thông tin cần thiết (ví dụ: ngoại ngữ thứ nhất, ngoại ngữ thứ hai), viết rõ hàm show. Hàm main(): viết một số lệnh để minh họa việc dùng các lớp trên Bài 4: 1) Hoàn thiện lớp sau class List { protected: int *data; int N; public: List(); // hàm dựng List(const List & L); // hàm dựng sao chép virtual ~List(); // hàm hủy virtual add(int x) ; void print(); }; 2) Xây dựng lớp với các phần tử được sắp xếp class SortedList : public List { // ….. }; Viết chương trình minh họa cách sử dụng.
File đính kèm:
- Thực hành ngôn ngữ lập trình C++ - Bài thực hành tuần 13.pdf