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

