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

};

pdf2 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 1909 | Lượt tải: 1download
Tóm tắt nội dung Thực hành ngôn ngữ lập trình C++ - Bài thực hành tuần 13, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfThực hành ngôn ngữ lập trình C++ - Bài thực hành tuần 13.pdf