- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构》实验报告 三
实验目的
掌握解栈和队列的特性、基本概念。熟练掌握栈和队列的基本操作和应用。
实验内容
调试运行程序[实验三调试程序].txt,并解释该程序的功能!
上机完成教材P106页【上机练习3】第1题。
【给出以上实验内容的正确的源代码程序和结果】
1.# include stdio.h
#include malloc.h
# define maxlen 20
typedef char elemtype;
typedef struct sqstack
{
elemtype data [maxlen];
int top;
} stack;
void init(stack *st) /*初始化栈*/
{
st-top=0;
}
int push (stack *st,elemtype x) /*入栈*/
{
if (st-top= =maxlen-1)
{
printf(“栈上溢出\n”);
return 0;
}
else
{
st-top++;
st-data[st-top]=x;
return 1;
}
}
int pop(stack *st,elemtype *x) /*退栈*/
{
if (st-top= = 0)
{
printf(“栈下溢出\n”);
return 0;
}
else
{
*x=st-data[st-top];
st-top--;
return 1;
}
}
int empty(stack *st) /*判断栈是否为空栈*/
{
if (st-top= =0)
return 1;
else
return 0;
}
int correct(char *str)
{
stack st;
char x;
int I,ok=1;
init(st);
for (I=0;str[I]!=’\0’;I++)
{
switch(str[I])
{
case’(‘:push(st,’(‘);break;
case’[‘:push(st,’[‘];break;
case’{‘:push(st,’{‘};break;
case’)‘:if(!(pop(st,x)x= =’(‘))
ok=0;
break;
case’]‘:if(!(pop(st,x)x= =’[’])
ok=0;
break;
case’}‘:if(!(pop(st,x)x= =’{‘})
ok=0;
break;
}
if(!ok) break;
}
if (empty(st) ok)
return 1;
else
return 0;
}
void main()
{
char *str;
str=(char *)malloc(100*sizeof(char));
printf(“str:”);
scanf(“%c”,str);
if(correct(str))
printf(“表达式括号匹配\n”);
else
printf(“表达式括号不匹配\n”);
}
作用:判断表达式括号是否匹配
2.#includestdio. h
#includemalloc. h
#define MaxLen 100
typedef struct node
{
char data;
struct node* next;
}cnode;
cnode* create(char s[])
{
int I = 0;
cnode* h, * p, * r;
while (s[I] != \0)
{
p = (cnode*)malloc(sizeof(cnode));
p-data = s[I]; p-next = NULL;
if(I == 0);
{
h = p;
r-next = NULL;
}
else
{
r-next = p; r = p;
}
I++;
}
return h;
}
int judge(cnode* h)
{
char st[MaxLen];
int top = 0;
cnode* p = h;
while (p != NULL)
{
st[top] = p-data;
top++;
p = p-next;
}
p = h;
while (p != NULL)
{
top--;
if (p-data == st[top])
p = p-next;
else
brea
您可能关注的文档
最近下载
- 城市轨道交通AFC系统65课件.pptx VIP
- 2025年云南省交通投资建设集团有限公司校园招聘笔试备考题库及答案解析.docx VIP
- 建筑工地基孔肯雅热防控和应急方案.docx VIP
- 第3章 知觉和模式识别.ppt VIP
- 公开课饮酒其五省公开课一等奖全国示范课微课金奖课件.pptx VIP
- 第二单元 6~10的认识和加、减法 单元教学设计 2025人教版数学一年级上册.pdf
- 钢筋混凝土管管道吊装方案.doc VIP
- 中医操作评分标准.pdf VIP
- 5.1 探究过氧化钠与二氧化硫的反应 课件 高一下学期化学人教版(2019)必修第二册.pptx VIP
- 农广校说课大赛.pptx VIP
文档评论(0)