- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
數据结构栈与队列的实验报告
数据结构
栈与队列实验报告
学院:数学与计算机学院
班级:计算机科学与技术
姓名:杨理源
学号:201310401069
实验三 栈与队列
一、实验目的:
(1)熟练掌握栈和队列的结构以及这两种数据结构的特点、栈与队列的基本操作。
(2)能够在两种存储结构上实现栈的基本运算,特别注意栈满和栈空的判断条件及描述方法;
(3)熟练掌握链队列和循环队列的基本运算,并特别注意队列满和队列空的判断条件和描述方法;
(4)掌握栈的应用;
二、实验要求:
(1) 给出程序设计的基本思想、原理和算法描述。
(2) 对源程序给出注释。
(3) 记录程序的运行结果,并结合程序进行分析。
三、程序设计的基本思想、原理和算法描述:
四、实验内容:
1、利用栈的基本操作将一个十进制的正整数转换成R进制数据,并将其转换结果输出。
#include stdio.h
#include stdlib.h
#include malloc.h
#define stack_init_size 100
#define stackincrement 10
typedef struct sqstack {
int *base;
int *top;
int stacksize;
} sqstack;
int StackInit(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 Push(sqstack *s,int 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?e;??
}?
int?Pop(sqstack?*s,int?e)?
{?
if(s-top==s-base)?
return?0;?
e=*--s-top;?
return?e;?
}?
int?stackempty(sqstack?*s)?
{?
if(s-top==s-base)?
{?
return?1;?
?
?}
else?
{?
return?0;?
}??
}?
int?conversion(sqstack?*s)?
?
{?
int?n,e=0,flag=0;?
printf(
输入要转化的十进制数:
\n);?
scanf(%d,n);?
printf(要转化为多少进制:2?进制、8?进制、16?进制填数字!\n);?
scanf(%d,flag);?
printf(将十进制数%d?转化为%d?进制是:\n,n,flag);?
while(n)?
{?
Push(s,n%flag);?
n=n/flag;?}?
?
while(!stackempty(s))?
{??
e=Pop(s,e);?
switch(e)?
{?
case?10:?printf(A);??
break;?
case?11:?printf(B);?
break;
case 12: printf(C);
break;
case 13: printf(D);
break;
case 14: printf(E);
break;
case 15: printf(F);
break;
default: printf(%d,e);
}
}
printf(\n);
return 0; }
int main()
{
sqstack s;
StackInit(s);
conversion(s);
return 0;
}
2、回文数判断
#includestdio.h
#includestring.h
#
文档评论(0)