软件技术基础栈和队列上机报告

软件技术基础栈和队列上机报告

ID:35237785

大小:74.00 KB

页数:12页

时间:2019-03-22

软件技术基础栈和队列上机报告_第1页
软件技术基础栈和队列上机报告_第2页
软件技术基础栈和队列上机报告_第3页
软件技术基础栈和队列上机报告_第4页
软件技术基础栈和队列上机报告_第5页
资源描述:

《软件技术基础栈和队列上机报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、12姓名:阚姗蕾学号:2010012030037上机实验三ex3_1:一、程序流程说明链栈1)链栈结点类型定义为:typedefstructnode{intdata;structnode*next;}node_type;2)编写进栈函数push3)编写出栈函数pop4)编写main函数,首先建立一空链栈;调用进栈函数,将从键盘输入的数据元素逐个进栈,输入0结束;显示进栈后的数据元素;调用两次出栈函数,显示出栈后的数据元素。二、程序代码#include#include//定义链栈type

2、defstructnode_type{intdata;structnode_type*next;}node_type;typedefstructstack_type{node_type*top;intlength;}stack_type;//进栈函数voidpush(stack_type*s,intnewnode)12{node_type*p;p=(node_type*)malloc(sizeof(node_type));p->data=newnode;p->next=s->top;s->top=p;s->length++

3、;}//出栈函数intpop(stack_type*s){node_type*p;intx;if(s->top==NULL){printf("ThestackisNULL!");return(0);}else{x=s->top->data;p=s->top;s->top=s->top->next;free(p);s->length--;return(x);}}//遍历并输出voidshowstack(stack_type*s){inti=0;intle;stack_type*s1;node_type*p;if(s->l

4、ength<=0){printf("Nodata!");return;}12s1->length=0;le=s->length;while(itop->data);i++;}while(i--)//返回原栈push(s,pop(s1));}intmain(){intnum;stack_typestack;printf("insert:number:");stack.length=0;while(scanf("%d"

5、,&num)&&num!=0)push(&stack,num);printf("Thelengthofthestackis:%d",stack.length);printf("stackafterpush:");showstack(&stack);printf("Thelengthofthestackis:%d",stack.length);printf("Thefirstnumbertopop");printf("%d",pop(&stack));printf("Thesecondnumb

6、ertopop");printf("%d",pop(&stack));printf("stackafterpop:");return0;}三、输入与输出insert:number:123450Thelengthofthestackis:5stackafterpush:54321Thelengthofthestackis:512Thefirstnumbertopop5Thesecondnumbertopop4stackafterpop:Processreturned0(0x0)executiontime:4.

7、415sPressanykeytocontinue.四、上机遇到的问题1)问题:在主函数中调用pop函数时总是报错原因:pop函数头时这样写的:node_type*pop(stack_type*s)解决办法:把pop改成返回int2)问题:程序停止工作或显示thestackisNULL!原因:在showstack函数中重复进行了length—解决办法:在showstack函数中直接调用push函数进行栈的转移ex3_2:一、程序流程说明循环队列1)顺序循环队列类型定义为:#defineN20typedefstruct{in

8、tdata[N];intfront,rear;}queue_type;2)编写循环队列出队函数dequeue3)编写循环队列入队函数enqueue4)编写函数:voidaa(queue_type*q);调用出对函数把队列q中的元素一一出对列,如果是负数直接抛弃;如果是正数,则调用入队函数,插入到q的队尾

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

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

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