ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:16.39KB ,
资源ID:23644509      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23644509.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子科技大学软件技术基础实验报告3.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子科技大学软件技术基础实验报告3.docx

1、电子科技大学软件技术基础实验报告3电子科技大学 通信与信息工程 学院标 准 实 验 报 告(实验)课程名称 软件技术基础实验 电子科技大学教务处制表电 子 科 技 大 学实 验 报 告一、实验室名称:校公共机房 二、实验项目名称:堆栈和队列程序设计三、实验学时:4学时四、实验原理:使用VS2010等C语言集成开发环境(IDE),在微型计算机上对程序进行编辑、编译、连接与运行。通过上机练习掌握堆栈和链表的建立、插入删除,遍历等方法和过程。五、实验目的:1. 熟练堆栈和链表的概念和基本操作方法。2. 掌握课程平台使用方法。六、实验内容:上机完成所有函数,编程实验,调试运行程序并完成报告。七、实验器

2、材(设备、元器件):硬件要求:普通pc机,1G内存,100G硬盘空间即可。 软件要求:Windows 7,包括C编译器的IDE。八、实验步骤、实验编程与运行结果: 现在列出4个题目的代码:/第一题:#include#include#define elemtype inttypedef struct s_tack int length; int top;stackt;typedef struct stack elemtype data; struct stack *next;stack_t;stack_t *initstack() stack_t *top; top=(stack_t*)mall

3、oc(sizeof(stack_t); top-next=NULL; top-data=0; return top;void display(stack_t *head) stack_t *p; printf(当前链栈的数据元素:n); for(p=head-next;p!=NULL;p=p-next) /top为头结点,不存放数据 printf(%d ,p-data); printf(n);void push(stack_t *top,elemtype x) stack_t *p; p=(stack_t*)malloc(sizeof(stack_t); p-data=x; p-next=to

4、p-next; top-next=p;void pop(stack_t *top) stack_t *t,*x; printf(出栈元素:%dn,top-next-data); x=top-next; t=x; top-next=top-next-next; free(t);int main() stack_t *top=NULL; int t; top=initstack(); while(1) printf(请输入新的链栈元素:); scanf(%d,&t); if(t=0) break; push(top,t); display(top); pop(top); display(top);

5、 pop(top); display(top);/第二题#include#include#define N 20typedef struct int dataN; int front,rear;queue_type;void create(queue_type *s) s-data0=2; s-data1=3; s-data2=-4; s-data3=6; s-data4=-5; s-data5=8; s-data6=-9; s-data7=7; s-data8=-10; s-data9=20; s-front=0; s-rear=10;void enqueue(queue_type *q,i

6、nt a) if(q-rear)+1)%N=q-front) printf(队列已满); else q-rear=(q-rear+1)%N; q-dataq-rear-1=a; int dequeue(queue_type *q) if(q-front=q-rear) printf(队列为空); else q-front=(q-front+1)%N; return(q-dataq-front-1); void show(queue_type *q,int a,int b) int i,flag=0; printf(n队列元素:n); if(a=b) flag=1; for(i=a;idatai

7、); printf(n);void aa(queue_type *q) int dequeue(queue_type *q); int length; length=(q-rear)-(q-front); for(;length0;length-) if(q-dataq-frontfront=(q-front+1)%N; printf(n负数出队:%d,q-dataq-front-1); else printf(n正数插入队尾:%d,q-dataq-front); q-front=(q-front+1)%N; q-rear=q-rear+1; q-dataq-rear-1=q-dataq-fr

8、ont-1; int main() int a; queue_type t; create(&t); show(&t,t.front,t.rear); printf(n执行出队操作,出队元素:%dn,dequeue(&t); show(&t,t.front,t.rear); printf(n执行入队操作,请输入入队元素:); scanf(%d,&a); enqueue(&t,a); show(&t,t.front,t.rear); printf(n执行aa函数:); aa(&t); show(&t,t.front,t.rear);/第三题#include#include#define elem

9、type int#define maxnum 100typedef struct stack elemtype datamaxnum; int top0; int top1; int length0; int length1;stack_type;void push(stack_type *ss,elemtype x,int flag) int i; if(flag=0) for(i=ss-length0+1;i=0;i-) ss-datai=ss-datai-1; ss-data0=x; ss-length0+; else for(i=maxnum-ss-length1;idatai-1=s

10、s-datai; ss-datamaxnum-1=x; ss-length1+; void pop(stack_type *ss,int flag) int i,j; if(flag=0) for(i=0;ilength0-1);i+) ss-datai=ss-datai+1; ss-length0-; else j=ss-length1; for(i=maxnum-1;j1;j-,i-) ss-datai=ss-datai-1; ss-length1-; void show(stack_type *ss,int flag) int i; if(flag=0) printf(0号链表如下:n)

11、; for(i=0;ilength0;i+) printf( %d ,ss-datai); printf(n); else printf(1号链表如下:n); for(i=maxnum;i(maxnum-ss-length1);i-) printf( %d ,ss-datai-1); printf(n); int main() stack_type s; int t,flag,i; s.length0=0; s.length1=0; s.top0=0; s.top1=99; while(1) printf(请输入新的栈元素:); scanf(%d,&t); if(t=0) break; pri

12、ntf(请选择操作的栈:); scanf(%d,&flag); push(&s,t,flag); show(&s,0);show(&s,1); printf(分别弹出每个栈一次,结果如下:n); pop(&s,0);pop(&s,1); show(&s,0);show(&s,1);/第四题#include#include#define N 10typedef struct int dataN; int front,rear; int tag; /tag=1,满;tag=0,不满queue_type;void create(queue_type *s) s-data0=2; s-data1=3;

13、 s-data2=-4; s-data3=6; s-data4=-5; s-data5=8; s-data6=-9; s-data7=7; s-data8=-10; s-data9=20; s-front=0; s-rear=9; s-tag=1;void enqueue(queue_type *q,int a) if(q-tag=0) if(q-rear-q-front+1)%N=9) q-tag=1; q-rear=(q-rear+1)%N; q-dataq-rear=a; else printf(队满,无法入队);int dequeue(queue_type *q) q-front=(q

14、-front+1)%N; q-tag=0; return(q-dataq-front-1);void show(queue_type *q,int a,int b,int ta) int i,flag=0; printf(n队列元素:n); if(ab) for(i=a;idatai); if(a=b) for(i=a;idatai); for(i=0;idatai); if(ta=1) printf(n队满n); else printf(n);int main() int a; queue_type t; create(&t); show(&t,t.front,t.rear,t.tag); printf(n执行出队操作,出队元素:%dn,dequeue(&t); show(&t,t.front,t.rear,t.tag); printf(n执行入队操作,请输入入队元素:); scanf(%d,&a); enqueue(&t,a); show(&t,t.front,t.rear,t.tag);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1