数据结构课程实验实训报告--堆栈和队列的基本操作。.doc

数据结构课程实验实训报告--堆栈和队列的基本操作。.doc

ID:56654456

大小:224.00 KB

页数:13页

时间:2020-07-01

数据结构课程实验实训报告--堆栈和队列的基本操作。.doc_第1页
数据结构课程实验实训报告--堆栈和队列的基本操作。.doc_第2页
数据结构课程实验实训报告--堆栈和队列的基本操作。.doc_第3页
数据结构课程实验实训报告--堆栈和队列的基本操作。.doc_第4页
数据结构课程实验实训报告--堆栈和队列的基本操作。.doc_第5页
资源描述:

《数据结构课程实验实训报告--堆栈和队列的基本操作。.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.《数据结构》课程实验实训报告实验名称栈与队列实验序号3学号14302043姓名前方班级信管本二实验日期2015.11.15指导教师金照林成绩一、实验目的和要求目的:掌握堆栈和队列数据结构描述,学会针对堆栈和队列的基本操作。要求:掌握C语言结构化程序设计思想,结构数据类型,指针数据类型。二、实验具体容及步骤1.实现课本中链式堆栈(p64-p66)的基本操作,并编制主函数实际运行验证其正确性。2.链式堆栈设计。要求:(1)用链式堆栈设计实现堆栈,堆栈的操作集合包括:初始化、非空否、入栈、出栈、取栈顶数据元素。(2)设计一个

2、主函数对链式堆栈进行测试。测试方法为依次把数据元素1、2、3、4、5入栈,然后出栈并在屏幕上显示出栈的数据元素。(3)定义数据元素的数据类型为如下形式的结构体:typedefstruct{chartaskName[10];//任务名inttaskNo;//任务号}DataType;首先设计一个包含5个数据的测试数据,然后设计一个主函数对链式堆栈进行测试。测试的方法为:依次把5个元素入栈,然后出栈并在屏幕上显示出栈的数据元素。3.实现课本中顺序循环队列(p75-p77)的基本操作,并编制主函数实际运行验证其正确性。4.对顺

3、序循环队列,常规的方法是使用队尾指针和队头指针,队尾指针用于指示当前的队尾位置下标,队头指针用于指示当前的队头位置下标。现要求:(1)设计一个使用队头指针和计数器的顺序循环队列抽象数据类型,其中操作包括:初始化、入队列、出队列、取队头元素和判断队列是否为空。..(1)设计一个测试主函数进行测试。三、实验结果与分析(程序代码按序粘贴在下面,并将运行结果截图)1.#include#includetypedefintDataType;typedefstructsnode{DataTyped

4、ata;structsnode*next;}LSNode;/*初始化操作:*/voidStackInitiate(LSNode**head)/*初始化带头结点链式堆栈*/{if((*head=(LSNode*)malloc(sizeof(LSNode)))==NULL)exit(1);(*head)->next=NULL;}/*判非空操作:*/intStackNotEmpty(LSNode*head)/*判堆栈是否非空,非空返回1;空返回0*/{if(head->next==NULL)return0;elsereturn

5、1;}/*入栈操作:*/intStackPush(LSNode*head,DataTypex)/*把数据元素x插入链式堆栈head的栈顶作为新的栈顶*/{LSNode*p;if((p=(LSNode*)malloc(sizeof(LSNode)))==NULL){printf("存空间不足无法插入!");return0;}p->data=x;p->next=head->next;/*新结点链入栈顶*/head->next=p;/*新结点成为新的栈顶*/return1;}/*出栈操作:*/intStackPop(LSN

6、ode*head,DataType*d)/*出栈并把栈顶元素由参数d带回*/{LSNode*p=head->next;if(p==NULL){printf("堆栈已空出错!");return0;}head->next=p->next;/*删除原栈顶结点*/*d=p->data;/*原栈顶结点元素赋予d*/free(p);/*释放原栈顶结点存空间*/return1;}/*取栈顶数据元素操作:*/intStackTop(LSNode*head,DataType*d)/*取栈顶元素并把栈顶元素由参数d带回*/{LSNode*p

7、=head->next;..if(p==NULL){printf("堆栈已空出错!");return0;}*d=p->data;return1;}/*撤销*/voidDestroy(LSNode*head){LSNode*p,*p1;p=head;while(p!=NULL){p1=p;p=p->next;free(p1);}}voidmain(void){LSNode*myStack;inti,x;StackInitiate(&myStack);for(i=0;i<5;i++){if(StackPush(myStack

8、,i+1)==0){printf("error!");return;}}if(StackTop(myStack,&x)==0){printf("error!");return;}elseprintf("Theelementoflocaltopis:%d",x);printf("Thesequenceofo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。