用链栈表的方式实现输入abcde,输出edcba操作,期末数据结构程序设计
1.链栈的定义
typedef struct LNode {
ElemType data;
struct LNode* next;
}LNode,*LinkList;
2.链栈的初始化
void InitStack(LinkList& S) {
S = (LNode*)malloc(sizeof(LNode));
S->next = NULL;
}
3.链栈的销毁
void DestroyStack(LinkList& S) {
LNode* p = S->next;
while (p != NULL) {
free(S);
S = p;
p = p->next;
}
free(S);
}
4.判空操作
bool StackEmpty(LinkList S) {
return (S->next == NULL) ? true : false;
}
5.进栈
bool Push(LinkList& S,ElemType x) {
LNode* p;
p = (LNode*)malloc(sizeof(LNode));
p->data = x;
p->next = S->next;
S->next = p;
return true;
}
6.出栈
bool <