- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构出栈入栈实验报告.
《数据结构》实验报告
院系 应用科技学院 专业 电子信息工程
姓名 学号
10 级 电信 班 2011 年 11 月 05日
1.实验目的
熟悉栈的定义和栈的基本操作。
掌握顺序存储栈和链接存储栈的基本运算。
加深对栈结构的理解,逐步培养解决实际能力问题的能力
2.需求分析
栈的建立
输入形式和输入值的范围:输入若干个正整数,用空格隔开,以0结束。
菜单操作
根据提示进行操作。
3.概要设计
(1)为了实现上述程序功能,需要第一一个简化的链表抽象数据类型:
ADT LinkList { 数据对象:D={ai|aiIntegerSet,i=0,1,2,…,n,n≥0} 数据关系:R={ai-1,ai|ai-1,ai1∈D,i=2,……,n} 基本操作:
①进栈函数 ???int Push(SqStack *S, int e)
出栈函数 ???int Pop(SqStack *S,int *e)
输出栈元素 void ?OutputStack(SqStack *S)
输出栈中的所有元素。
typedef struct {
int *base;???
int *top; ????
int stacksize; ?
} SqStack
(2)基本操作的伪码算法
/****************构造一个空栈****************/
int InitStack(SqStack S)
{
S.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
if(!S.base) return 0;
S.top=S.base;
S.stacksize=STACK_INIT_SIZE ;
return 1;
}
int GetTop(SqStack S,int e)
{
if(S.top==S.base) return 0;
e=*(S.top-1);
return 1;
}
/****************入栈函数****************/
int Push(SqStack S,int e)
{ //插入元素e为新的栈顶元素
if(S.top-S.base=S.stacksize)
{
S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));
if(!S.base) return 0;
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
return 1;
}
/****************出栈函数****************/
int Pop(SqStack S,int e)
{
if(S.top==S.base) return 0;
e=*--S.top;
return 1;
}
/****************输出函数****************/
int OutputStack(SqStack S)
{ //输出栈中所有元素
int *p;
int i;
p=S.top-1;
printf(栈中的元素有:);
for(i=0;iS.top-S.base;i++)
{
printf( %d,*p);p--;
}
return 1;
}
5.使用说明
程序名为实验1.exe,程序执行过程如下:
运行程序显示如下菜单:
printf(\n);
printf(\t\t\t 顺序栈操作 \n);
printf(\t\t\t**************************\n);
printf(\t\t\t* 0.退出程序! *\n);
printf(\t\t\t* 1.读取栈顶元素 *\n);
printf(\t\t\t* 2.删除栈顶元素 *\n);
printf(\t\t\t* 3.输出栈中所有元素 *\n);
printf(\t\t\t**************************\n);
printf(请选择菜单号(0-3):);
用户输入0~3的数字,选择
文档评论(0)