全球旧事资料 分类
实验目的
掌握栈的顺序存储结构的定义及顺序栈中的各种基本操作。设计完成栈的综合应用包括1数制转换2判断回文3括号匹配
实验功能
本次实验栈和队列的应用,我对数制转换、判断回文和括号匹配进行了算法编程;主要采用栈的顺序存储结构和队列的单链存储,对栈的构造空栈、判空、入栈、出栈和队列的构造空队列、入队、出队基本操作分别进行了定义建立了i
t型的数制转换顺序栈和char型的括号匹配顺序栈,同时用栈和队列判断字符串是否回文。由于数制转换(i
t)和括号匹配(char)的数据类型不同,分别对它们定义了进栈和出栈子函数,另外我还将数制转换分为了七个子函数,分别进行不同进制之间的转换我觉得这样安排对使用者来说更简单快捷我还将九个完整的函数块放在一个主函数mai
里,形成一个完整的、可以实现九个子函数功能的主函数。再通过编写选择语句switchcase,实现子函数功能的选择,循环while语句实现子函数菜单功能的重复执行,break语句跳出循环,结束子函数功能。主函数里通过对子函数的调用实现整体函数功能。
f流程图:
预定义栈的存储空间和增量存储空间I
clude头文件
定义数制转换和括号匹配结构体
定义栈和队列的基本算法,数制转换和括号匹配的进栈和出栈子函数
102进制整数转换108进制整数转换1016进制整数转换210进制整数转换810进制整数转换1610进制整数转换102进制小数转换
括号匹配回文判断
主函数mai

While主菜单
switchcase选择分支
f实验过程(完整源程序)
typedefi
tSElemType定义栈元素类型为整型i
cludestdiohi
cludestri
ghi
cludemallochmalloc等i
cludectypehi
cludeprocesshexiti
cludemathhi
cludestdlibh
defi
eSTACK_INIT_SIZE100存储空间初始分配量defi
eSTACKINCREMENT2存储空间分配增量defi
eMAX20
structSqStack栈的顺序存储表示SElemTypebase在栈构造之前和销毁之后,base的值为NULLSElemTypetop栈顶指针i
tstacksize当前已分配的存储空间,以元素为单位
typedefstructStack
charbase定义括号匹配的结构体chartopcharsize
typedefstructQNode队列的链式存储结构i
tdatastructQNode
extQNodeQueuePtrtypedefstructLi
kQueueQueuePtrfro
t对头指针QueuePtrrear队尾指针Li
kQueue单链队列
i
tI
itStackSqStackS构造一个空栈SifSbasei
tmallocSTACK_INIT_SIZEsizeofi
t
exit0存储分配失败StopSbaseSstacksizeSTACK_INIT_SIZE
fretur
1
voidcreatstackStackW括号匹配顺序栈的建立
WbasecharmallocSTACK_INIT_SIZEsizeofr
好听全球资料 返回顶部