#include"c0.h"
#include"C4.h"
typedef int SElemType;
#include"zhan4.h"
typedef int QElemType;
#include"dui4.h"
void visit(QElemType e)
{
printf("%5d",e);
}
void print(SElemType e)
{
printf("%5d",e);
}
void main()
{
int a,elem;
SqStack S;
LinkQueue Q;
printf("************************************************\n");
printf("* 1.初始化顺序存储的栈; *\n");
printf("* 2.初始化链式存储的队列; *\n");
printf("* 3.输入元素入栈; *\n");
printf("* 4.输入元素进入队列; *\n");
printf("* 5.栈中元素出栈; *\n");
printf("* 6.队列元素出队 *\n");
printf("* 7.销毁栈; *\n");
printf("* 8.销毁队列; *\n");
printf("* 9.结束; *\n");
printf("************************************************\n");
while(1){
printf("请输入你的选择:(1~9)");
scanf("%d",&a);
switch(a)
{
case 1:InitStack(S);
printf("已构建空栈S\n");break;
case 2:InitQueue(Q);
printf("已构建空队列L\n"); break;
case 3:printf("请输入待插入栈中的元素:\n");
scanf("%d",&elem);
Push(S,elem);
printf("元素入栈成功\n");break;
case 4:printf("请输入待插入队中的元素:\n");
scanf("%d",&elem);
EnQueue(Q,elem);
printf("元素入队成功\n");break;
case 5:printf("栈中的元素为:");
StackTraverse(S,print);
break;
case 6:printf("队列中的元素为:");
QueueTraverse(Q,visit);
break;
case 7:DestroyStack(S);
printf("栈已销毁。\n");
break;
case 8:DestroyQueue(Q);
printf("队列已销毁。\n");
break;
case 9:
if(S.base!=NULL)
{
printf("栈未销毁,请先进行步骤7\n");
continue;
}
else if(Q.front!=Q.rear)
{
printf("队列未销毁,请先进行步骤8\n");
continue;
}
else
printf("谢谢使用,再见\n");
exit(1);
}
}
}
C语言数据结构链表队列操作
需积分: 10 69 浏览量
2012-07-08
13:20:01
上传
评论
收藏 25KB RAR 举报
jiuw0902
- 粉丝: 2
- 资源: 4