用数组实现线性表类 array ,从 array 中派生子类 stack 和 queue ,实现出栈、 入栈、 出队列、入队列等
#ifndefHEADFILE_LIST#defineHEADFILE_LISTclasslist//线性表类{private:list(constlist&){};vo...
#ifndef HEADFILE_LIST
#define HEADFILE_LIST
class list// 线性表类
{
private:
list(const list&){};
void operator = (const list&){};
protected:
struct Node{// 定义结点结构
int value;
Node* next;
};
Node *head;// 线性表头
Node *tail;// 线性表尾
public:
list();
virtual ~list();
bool empty();// 判断线性表是否为空
void clear();// 清空线性表
void print();// 打印线性表
};
class stack: public list
{
private:
stack(const stack&){};
void operator = (const stack&){};
public:
stack(){};
int pop();// 弹出栈顶元素
void push(int value);// 压栈
};
class queue: public list
{
private:
queue(const queue&){};
void operator = (const stack&){};
public:
queue(){};
int outqueue();// 取出队头元素
void inqueue(int value);// 加入新元素到队尾
};
#endif 展开
#define HEADFILE_LIST
class list// 线性表类
{
private:
list(const list&){};
void operator = (const list&){};
protected:
struct Node{// 定义结点结构
int value;
Node* next;
};
Node *head;// 线性表头
Node *tail;// 线性表尾
public:
list();
virtual ~list();
bool empty();// 判断线性表是否为空
void clear();// 清空线性表
void print();// 打印线性表
};
class stack: public list
{
private:
stack(const stack&){};
void operator = (const stack&){};
public:
stack(){};
int pop();// 弹出栈顶元素
void push(int value);// 压栈
};
class queue: public list
{
private:
queue(const queue&){};
void operator = (const stack&){};
public:
queue(){};
int outqueue();// 取出队头元素
void inqueue(int value);// 加入新元素到队尾
};
#endif 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询