实验三 顺序栈的基本操作
实验目的:
1、熟悉将算法转换成程序代码的过程。 2、了解单顺序栈的逻辑结构特性,熟练掌握顺序栈存储结构的C 语
言描述方法。
3、熟练掌握顺序栈的基本操作:入栈、出栈等,掌握顺序栈的存取
特性。
实验内容:
1、分别建立包含6个数据元素的单链
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
; 2、从键盘输入一个数据元素x,进行入栈操作; 3、获取出栈元素的值;
4、能获取栈顶元素;
5、打印顺序栈元素;
6、给出程序及各项操作结果。
实验步骤:
#include
#include
#include
#define MAXSIZE 100
typedef int DataType;
typedef struct {
DataType data[MAXSIZE];
int top;
}SeqStack, *PSeqStack;
PSeqStack Init_SeqStack(void)
{ /*创建一顺序栈,入口参数无,返回一个指向顺序栈的指针,
为零表示分配空间失败*/
PSeqStack S;
S=( PSeqStack)malloc(sizeof(SeqStack)); if (S)
{
S->top= -1;
printf("置空栈成功~\n");
}
return S;
}
void Destroy_SeqStack (PSeqStack * SeqStackPoint) { /*销毁顺序栈,入口参数:为要销毁的顺序栈指针地址,无返回值*/
if (*SeqStackPoint)
free (*SeqStackPoint) ;
* SeqStackPoint =NULL;
return ;
}
int Empty_SeqStack(PSeqStack S) { /*判断栈是否为空,入口参数:顺序栈,返回值:1表示为
空,0表示非空*/
if (S->top== -1)
return 1;
else
return 0;
}
int Push_SeqStack (PSeqStack S, DataType x) { /*在栈顶插入一新元素x, 入口参数:顺序栈,返回值:1
表示入栈成功,0表示失败。*/
if (S->top==MAXSIZE-1)
return 0; /*栈满不能入栈*/
else
{ S->top++;
S->data[S->top]=x;
return 1;
}
}
int Pop_SeqStack(PSeqStack S , DataType *x) { /*删除栈顶元素并保存在*x, 入口参数:顺序栈,返回值:1表示出栈成
功,0表示失败。*/
if (Empty_SeqStack ( S ) )
return 0; /*栈空不能出栈 */ else
{ *x= S->data[S->top];
S->top--;
return 1;
}
}
int GetTop_SeqStack(PSeqStack S, DataType *x) { /*取出栈顶元素, 入口参数:顺序栈,被取出的元素指
针,这里用指针带出栈顶值/*
/*返回值:1表示成功,0表示失败。*/
if ( Empty_SeqStack ( S ) )
return 0; /*栈空*/
else
{ *x= S->data[S->top]; /*栈顶元素存入*x中*/ return (1);
}
}
void display(PSeqStack S)
{
学生填写
}
void main()
{
(由学生填写)
}
实验用测试数据和相关结果
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
:(由学生填写)
实验
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
:(由学生填写)