- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
數据结构实验3栈和队列
《数据结构》实验(三)
实验目的:
掌握栈的顺序存储结构的特点及算法描述。
掌握顺序栈的基本操作实现,熟悉应用方法。
掌握队列顺序存储结构的特点及算法描述
掌握顺序队列基本操作的实现,熟悉应用的方法。
实验课时:4课时
实验内容
1、 在键盘上接收一串带括号的字符串 ,判断括号是否匹配,如果匹配,输出正确,如果不匹配,输出第一对不匹配的括号,并显示错误。例如:
{p{p})
输出
{ and }
{ and )
error
error
具体程序如下,请同学们仔细阅读,并在提示下,在有下划线的地方填上程序,
#include datastru.h
#include stdio.h
void initstack(SEQSTACK *s)
/*顺序栈初始化*/
{ s-top = 0; }
DATATYPE1 sempty(SEQSTACK *s) /*判栈空*/
{ if(s-top== 0) return 1;
else return 0; }
int push(SEQSTACK *s, DATATYPE1 x)
/*元素x入栈*/
{ if(s-top == MAXSIZE - 1) {printf(栈满\n); return 0;}
else {s-top++; (s-data)[s-top] = x; return 1;}
}
DATATYPE1 pop(SEQSTACK *s)
/*返回栈顶元素并删除栈顶元素*/
{DATATYPE1 x;
if(s-top == 0) { x = 0;}
else {x = (s-data)[s-top]; s-top--;}
return x;
}
DATATYPE1 gettop(SEQSTACK *s)
/*返回栈顶元素*/
{DATATYPE1 x;
if(s-top == 0) {printf(栈空\n); x = 0;}
else x = (s-data)[s-top];
return x;
}
void check(SEQSTACK *s)
{
char ch,dh;
printf(\n请输入一串括号,回车键结束 :);
ch = getchar();
while(ch != \n)
{ if(ch==(||ch==[||ch=={) //如果遇到左括号
{
push(s,ch); //把左括号入栈
}
if(ch==)||ch==]||ch==}) //如果遇到右括号
{ //出栈,并把出栈的值赋给变量dh
if(sempty(s)) //如果栈为空
{
printf(缺失左括号!);
break; //跳出循环
}
dh=pop(s);
printf(%c和%c\n,dh,ch);
if(ch==(dh!=)||ch==[dh!=]||ch=={dh!=}) //如果dh和ch不匹配
{
printf(\n括号匹配错误\n);
break; //跳出循环
}
}
ch = getchar();
} /*继续处理*/
if(ch==\n sempty(s)) //如果字符串结束并且栈为空
printf(\n括号配对正确\n);
if(sempty(s)==0) //如果栈不为空
printf(\n缺失右括号\n);
}
main()
{
SEQSTACK st, *s;
s = st;
initstack(s);
check(s);
}
2、添加一个函数dTOb(),利用栈的原理实现十进制转换成二进制。
#define DATATYPE1 int
#include math.h
#include stdio.h
#define MAXSIZE 100
typedef struct
{ DATATYPE1 data[MAXSIZE];
int top;
}SEQSTACK;
void initstack(SEQSTACK *s) /*初始化空栈*/
{ s-top = 0; }
in
您可能关注的文档
- 教材及相關资料建设.doc
- 教材是實施教学的工具.doc
- 教材書理论题解答.doc
- 教材的邏辑顺序与心理顺序杜威的探索.doc
- 教材編写思路与提纲.doc
- 教材解析黃金叶.doc
- 教材課本作文素材.doc
- 教科版七年級上政治复习资料.doc
- 教育信息化建設工作制度及岗位职责.doc
- 教育創新的起点之激发学生的英语学习兴趣.doc
- (茅台酒)白酒酿造工职业技能认定-制曲制酒考试题及参考答案【综合卷】.docx
- 2025年知识百科竞赛考试题库精编答案.docx
- 2025年知识百科竞赛考试题库含答案【b卷】.docx
- 2025四月份第1章推销概述.pptx
- 2025四月份韵歌教学新趋势:《对韵歌》完美版课件揭秘.pptx
- 2025年知识百科竞赛考试题库附参考答案(能力提升).docx
- 2025四月份项目1创建Docker运行环境.pptx
- 2025年超星尔雅学习通《劳动通论》章节测试题【精练】.docx
- 超星尔雅学习通《形势与政策(2025春)》章节测试卷(网校专用).docx
- 2025年知识百科竞赛考试题库附答案(研优卷).docx
最近下载
- 2023年云南大学滇池学院网络工程专业《数据结构与算法》科目期末试卷A(有答案).docx VIP
- 油水井动态分析方法.pptx VIP
- 风机吊装安全技术交底交底.docx VIP
- 2023年云南大学滇池学院计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 高考志愿填报样表.doc VIP
- 论剧版《繁花》的叙事策略与主题.docx VIP
- 阳煤丰喜肥业(集团)有限责任公司临猗分公司“8·31”煤气过滤器导淋排液中毒事故调查报告.doc VIP
- 人工智能引论知到智慧树期末考试答案题库2025年浙江大学.docx VIP
- 2023年广东珠海中考地理真题及答案.doc VIP
- 2022年云南大学滇池学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案).docx VIP
文档评论(0)