- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构堆栈实验报告.doc
数据结构堆栈实验报告
篇一:数据结构-堆栈和队列实验报告
实验报告
实验二 堆栈和队列
实验目的:
1.熟悉栈这种特殊线性结构的特性;
2.熟练并掌握栈在顺序存储结构和链表存储结构下的基本运算;
3.熟悉队列这种特殊线性结构的特性;
3.熟练掌握队列在链表存储结构下的基本运算。
实验原理:
堆栈顺序存储结构下的基本算法;
堆栈链式存储结构下的基本算法;
队列顺序存储结构下的基本算法;
队列链式存储结构下的基本算法;
实验内容:
3-18 链式堆栈设计。要求
(1)用链式堆栈设计实现堆栈,堆栈的操作集合要求包括:初始化StackInitiate(S),非空否StackNotEmpty(S),入栈StackiPush(S,x),出栈StackPop(S,d),取栈顶数据元素StackTop(S,d);
(2)设计一个主函数对链式堆栈进行测试。测试方法为:依次把数据元素1,2,3,4,5入栈,然后出栈并在屏幕上显示出栈的数据元素;
(3)定义数据元素的数据类型为如下形式的结构体,
Typedef struct
{
c(本文来自:wwW.xIAocAofaNwE 小 草范 文 网:数据结构堆栈实验报告)har taskName[10];
int taskNo;
}DataType;
首先设计一个包含5个数据元素的测试数据,然后设计一个主函数对链式堆栈进行测试,测试方法为:依次吧5个数据元素入栈,然后出栈并在屏幕上显示出栈的数据元素。
3-19 对顺序循环队列,常规的设计方法是使用対尾指针和对头指针,对尾指针用于指示当前的対尾位置下标,对头指针用于指示当前的対头位置下标。现要求:
(1)设计一个使用对头指针和计数器的顺序循环队列抽象数据类型,其中操作包括:初始化,入队列,出队列,取对头元素和判断队列是否为空;
(2)编写一个主函数进行测试。
实验结果:
3-18
typedef struct snode
{
DataType data;
struct snode *next;
} LSNode;
/*初始化操作:*/
void StackInitiate(LSNode **head)
/*初始化带头结点链式堆栈*/
{
if((*head = (LSNode *)malloc(sizeof(LSNode))) == NULL) exit(1); (*head)-next = NULL;
}
/*判非空操作:*/
int StackNotEmpty(LSNode *head)
/*判堆栈是否非空,非空返回1;空返回0*/
{
if(head-next == NULL) return 0;
else return 1;
}
/*入栈操作:*/
int StackPush(LSNode *head, DataType x)
/*把数据元素x插入链式堆栈head的栈顶作为新的栈顶 */ {
LSNode *p;
if((p = (LSNode *)malloc(sizeof(LSNode))) == NULL)
{
printf(“内存空间不足无法插入! \n”);
return 0;
}
p-data = x;
p-next = head-next; /*新结点链入栈顶*/ head-next = p;/*新结点成为新的栈顶*/ return 1;
}
/*出栈操作:*/
int StackPop(LSNode *head, DataType *d)
/*出栈并把栈顶元素由参数d带回*/
{
LSNode *p = head-next;
if(p == NULL)
{
printf(“堆栈已空出错!”);
return 0;
}
head-next = p-next;/*删除原栈顶结点*/
*d = p-data; /*原栈顶结点元素赋予d*/ free(p); /*释放原栈顶结点内存空间*/ return 1;
}
/*取栈顶数据元素操作:*/
int StackTop(LSNode *head, DataType *d)
/*取栈顶元素并把栈顶元素由参数d带回*/
{
LSNode *p = head-next;
if(p == NULL)
{
printf(“堆栈已空出错!”);
return 0;
}
*d = p-data;
return 1;
}
您可能关注的文档
- 变频器资料-VACON_NXL变频器应用手册.doc
- 长沙地区高校党课考试题库.doc
- 事业单位招考综合知识公文写作 投稿:苏枯枰.doc
- 变频器abb说明书.doc
- 2015学年公需科目低碳经济考试题及答案要点.doc
- CI计划VI视觉识别系统手册概述.doc
- ABB变频器应用论文.doc
- 中小学心理健康教育心得体会_中小学心理健康教育心得.doc
- 戚继光抗倭的故事(范文篇).doc
- 内蒙古x区鄂尔x市准格尔旗x中学高二下学期x次月考数学(文)试题合集.doc
- 一城一云服务城市高质量发展白皮书(2023).pdf
- 中国连锁餐饮企业资本之路系列报告(2023)-历尽千帆,厚积薄发.pdf
- 有色金属行业专题研究:未来焦点,钒液流电池储能风潮兴涌.pdf
- 中国 “一带一路”实践与观察报告.pdf
- 医药生物-消费器械行业2023年中报总结:积极拥抱高璧垒高成长(202309).pdf
- DB50T 699-2016 简易升降机检验规则.pdf
- DB50T 746-2016 水库大坝安全监测资料整编分析规程 .pdf
- 看DAO2025-未尽研究报告(2024).pdf
- 市场洞察力报告-数据安全检查工具箱(2024).pdf
- 2024年预见未来:中国元医院建设发展调研报告.pdf
文档评论(0)