文档介绍:班级: 姓名: 学号:
实验二线性表的基本操作
实验目的
;
。
实验内容
1. 编写一个程序实现顺序栈的初始化、入栈和出栈操作;
、入队和出队操作。
实验环境
Win10专业版、Dev C++
程序分析与实验结果
(一)
栈的初始化:
int InitStack(SqStack &S){
=(int*)malloc(STACK_INIT_SIZE *sizeof(int));
if(!)exit(OVERFLOW);
=;
=STACK_INIT_SIZE;
return 1;
}
入栈:
int Push(SqStack &S,int e){
if(->=){
=(int*)realloc(,(+STACKINCREMENT)*sizeof(int));
if(!)exit(OVERFLOW);
=+;
+=STACKINCREMENT;
}
*++=e;
return 1;
}
出栈:
int Pop(SqStack &S){
int e;
if(==)
{
printf("栈为空\n");
return ERROR;
}
e=*--;
return e;
}
(二)
链队列的初始化:
Status Chushihua(LinkQueue &Q){
QueuePtr p;
int e;
printf("请输入元素,以0 结束\n");
while(scanf("%d",&e),e!=0){
p=(QueuePtr)malloc(sizeof(QNode));
p->data=e;
p->next=NULL;
->next=p;
=p;
}
p=->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
return OK;
}
入队:
Status EnQueue(LinkQueue &Q){
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
if(!p)exit(OVERFLOW);
printf("请输入要入队的元素:");
scanf("%d",&p->data);
->next=p;
p->next=NULL;