本人跪求C++程序-------设计一个堆栈

来源:百度知道 编辑:UC知道 时间:2024/05/29 11:12:40
要求如下:
1> 实现堆栈的基本功能;入栈,出栈等.
2> 要求对元素的类型最好不要限定,并其高效安全

#define stacksize 100//栈最大空间
typedef int elemtype;//栈元素类型,可以根据需要更改
typedef struct
{
int top;//栈顶指针
elemtype data[stacksize];
}stack;//栈类型
void initstack(stack &s)//建立空栈
{
s.top=-1;
}
void push(stack &s,elemtype e)//压栈
{
if(s.top>=stacksize)
{
printf("full!");
return;
}
s.data[++s.top]=e;
}
void pop(stack &s,elemtype &e)//弹栈
{
if(s.top<=-1)
{
printf("empty stack!");
return;
}
e=s.data[s.top--];
}
bool stackempty(stack s)//判断栈非空
{
if(s.top==-1)return true;
return false;
}

//用链表实现堆栈
class Stack
{
public:
Stack();
~Stack();
void Push(void *data);
void Pop();
protected:
typedef struct elementT{
struct elementT *next;
void *data;
}element;
element firstEl;
};

Stack::Stack()
{