欢迎来到天天文库
浏览记录
ID:56904458
大小:71.00 KB
页数:15页
时间:2020-07-21
《栈和队列的基本操作实现及其应用.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二栈和队列的基本操作实现及其应用一_一、实验目的1、熟练掌握栈和队列的基本操作在两种存储结构上的实现。一_二、实验内容题目一、试写一个算法,判断依次读入的一个以@为结束符的字符序列,是否为回文。所谓“回文“是指正向读和反向读都一样的一字符串,如“321123”或“ableelba”。相关常量及结构定义:#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10typedefintSElemType;typedefstructSqStack{SElemType*base;SElem
2、Type*top;intstacksize;}SqStack;设计相关函数声明:判断函数:intIsReverse()栈:intInitStack(SqStack&S)intPush(SqStack&S,SElemTypee)intPop(SqStack&S,SElemType&e)intStackEmpty(s)一_三、数据结构与核心算法的设计描述1、初始化栈/*函数功能:对栈进行初始化。参数:栈(SqStackS)。成功初始化返回0,否则返回-1*/intInitStack(SqStack&S)-15-{S.base
3、=(SElemType*)malloc(10*sizeof(SElemType));if(!S.base)//判断有无申请到空间return-1;//没有申请到内存,参数失败返回-1S.top=S.base;S.stacksize=STACK_INIT_SIZE;S.base=newSElemType;return0;}2、判断栈是否是空/*函数功能:判断栈是否为空。参数;栈(SqStackS)。栈为空时返回-1,不为空返回0*/intStackEmpty(SqStackS){if(S.top==S.base)retur
4、n-1;elsereturn0;}3、入栈/*函数功能:向栈中插入元素。参数;栈(SqStackS),元素(SElemtypee)。成功插入返回0,否则返回-1*/intPush(SqStack&S,SElemTypee){if(S.top-S.base>=S.stacksize){S.base=(SElemType*)realloc(S.base,(S.stacksize+1)*sizeof(SElemType));//重新分配空间if(!S.base)return-1;S.top=S.base+S.stacksize
5、;S.stacksize+=STACKINCREMENT;}*S.top++=e;//插入操作return0;}4、出栈/*函数功能:在栈中删除元素。参数;栈(SqStackS),元素(SElemtypee)。成功删除返回0,否则返回-1*/intPop(SqStack&S,SElemType&e)-15-{if(S.top==S.base)return-1;e=*--S.top;//删除操作return0;}5、判断是否为回文/*函数功能:判断栈中的字符串是否为回文。参数;栈(SqStackS)。是回文时返回1,否则返
6、回0*/intIsReverse(SqStack&S){inti;chara;for(i=0;i7、n0;}lpp=IsReverse(p);-15-if(lpp==0)cout<<"此字符串不是回文。"<usingnamespacestd;#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10charb[STACK_INIT_SIZE+STACKIN8、CREMENT];intj=0;typedefcharSElemType;typedefstructSqStack{SElemType*base;SElemType*top;intstacksize;}SqStack;intInitStack(SqStack&S){S.base=(SElemType*)malloc(
7、n0;}lpp=IsReverse(p);-15-if(lpp==0)cout<<"此字符串不是回文。"<usingnamespacestd;#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10charb[STACK_INIT_SIZE+STACKIN
8、CREMENT];intj=0;typedefcharSElemType;typedefstructSqStack{SElemType*base;SElemType*top;intstacksize;}SqStack;intInitStack(SqStack&S){S.base=(SElemType*)malloc(
此文档下载收益归作者所有