实验六链栈的基本操作
一、实验目的
掌握对链栈的基本操作(链栈的构造、出栈、入栈、判断栈满或等操作)
二、 实验内容
完成代码框架中对链栈的基苯操作的函数代码。
三、 代码框架
#include
#include
#include
//函数结果状态代码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
// Status是函数返回值类型,其值是函数结果状态代码。
typedefint Status;
// 定义数元素的类型
typedefintElemType;
typedefstructStackNode
{
ElemType data;
structStackNode *next;
} StackNode;
typedefstruct
{
StackNode *top;
} LinkStack;
//基本操作
说明
关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书
Status InitStack(LinkStack *S); //建立一个空栈S
Status StackEmpty(LinkStack *S); //栈判空
ElemTypeGetTop(LinkStack *S); //取栈顶元素值返回给e
Status Push(LinkStack *S, ElemType e); //插入元素e为新的栈顶元素
Status Pop(LinkStack *S, ElemType *e); //删除栈顶元素返回给e
intStackLength(LinkStack *S); //求栈的长度
//基本功能的实现
Status InitStack(LinkStack *S)
{
S->top = NULL;
return OK;
}
//进栈
Status Push(LinkStack *S, ElemType e)
{
StackNode *p;
p=(StackNode *)malloc(sizeof(StackNode));
if ( S == NULL )
return ERROR;
p->data = e;
p->next = S->top;
S->top = p;
return OK;
}
//出栈
Status Pop(LinkStack *S, ElemType *e)
{
StackNode *p;
if(S==NULL)
return ERROR;
p = S->top ;
*e = p->data;
S->top = S->top->next;
free(p);
return OK;
}
//获取栈顶元素
ElemTypeGetTop(LinkStack *S)
{
if( ( S->top )!=NULL)
return S->top->data;
}
//链栈判空
Status StackEmpty(LinkStack *S)
{
if( S->top ==NULL)
return TRUE;
else
return FALSE;
}
//求链栈的长度
intStackLength(LinkStack *S)
{
inti=1;
StackNode *p;
p=S->top->next;
while (p)
{
i++;
p=p->next;
}
return i;
}
int main()
{
intN,b;
LinkStack *S;
S=(LinkStack *)malloc(sizeof(LinkStack));
ElemType t;
ElemType *e=&t;
InitStack(S);
Push(S,8);
Push(S,9);
Pop(S,e);
printf("%d \n",StackEmpty(S));
printf("%d \n",StackLength(S));
t=GetTop(S);
printf("%d \n",t);
printf("hello");
return 0;
}
四、实验
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
1、完成代码框架中的各功能函数。
2、对实验结果进行截图,并对实验结果进行说明。
2、按照实验模板上交实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
,注意上交到云平台的截至时间。