Cho lớp bản mẫu Stack được khai báo như sau:
Code:
template <class T>
class Link{
T data;
Link* next;
void initialize(T dat, Link* nxt){};
public: friend class Stack<T>;
~Link(){delete next;}
};
template <class D>
class Stack {
Link<D>* head;
public:
void initialize(); // khởi tạo một Stack rỗng
void push(D dat); // thêm một phần tử vào đầu Stack
D pop(); // loại bỏ phần tử trên đỉnh Stack
~Stack();
};
1. Hãy đưa ra cài đặt đầy đủ của lớp Stack
2. Một lớp C bất kỳ cần thỏa mãn điều kiện gì để có thể sử dụng lớp thể nghiệm Stack<C>.