ImageVerifierCode 换一换
你正在下载:

上机.docx

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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

上机.docx

1、上机上机一 线性结构的基本操作一、 上机目的1、掌握线性结构中线性表、栈、队列的存储结构形式及其描述和基本运算的实现。3、熟练掌握动态链表结构及有关算法的设计。4、掌握线性表、栈、队列的基本操作:插入、删除、查找等运算在顺序存储结构和链接存储结构上的算法思想和实现。二、 上机要求1、 认真阅读和掌握本上机的程序,在各模块的后面写出相应的注释。2、 上机运行本程序。3、 保存和打印出程序的运行结果,并结合程序进行分析。4、 按照你对线性表的操作需要,再写出线性表合并的程序并运行,打印出文件清单和运行结果三、 上机内容程序:顺序队列基本操作的实现/ 4.cpp : Defines the entr

2、y point for the console application./#include stdafx.h#include #include #include #define MSIZE 30 typedef struct int dataMSIZE; int front; int rear; Queue; void InitQueue (Queue *Q)/构造一个空队列Q Q-front =Q-rear =0; void EnQueue(Queue *Q,int e)/入队 if(Q-rear+1)%MSIZE=Q-front) printf(队列已满); else Q-dataQ-re

3、ar=e; Q-rear=(Q-rear+1)%MSIZE; void DeleteQueue(Queue *Q,int *e)/出队 if(Q-front=Q-rear) return; *e=Q-dataQ-front; Q-front=(Q-front+1)%MSIZE; void QueuePrint(Queue Q) int i,j,p,e; j=(Q.rear-Q.front +MSIZE)%MSIZE; p=Q.front; if(Q.front=Q.rear) printf(队列为空。n); else if(Q.rear+1)%MSIZE=Q.front) printf(队列满

4、。n); else if(Q.front+1)%MSIZE!=Q.front) printf(队列非空非满。n); for(i=1;i=j;i+) e=Q.datap; p=(p+1)%MSIZE; printf(第%d元素的值是=%dn,i,e); int menu_select()/*系统菜单*/ int a; printf(n*_* 按任意键清屏并返回主菜单! *_* n); getch(); system(cls); printf(*MENU*n); printf(1.建立空队列n); printf(2.入队列n); printf(3.出队列n); printf(4.输出队列n); p

5、rintf(5.退出n); printf(*n); do printf(请输入你的选择(15):); scanf(%d,&a); while (a5); return a; void main() int x; int choice=0; Queue Q; int e; for(;) switch(menu_select() case 1:InitQueue(&Q); printf(初始化队列完毕.n); break; case 2:printf( 输入入队元素:); scanf(%d,&x); EnQueue(&Q,x); break; case 3:DeleteQueue(&Q,&e);

6、printf(出队元素:%dn,e); break; case 4:QueuePrint(Q); break; case 5:exit(0); 程序:链栈基本操作的实现/ 5.cpp : Defines the entry point for the console application./#include stdafx.h#include #include #include #include iostream.h #include typedef int StackDataType; /StackDataType 定义为整数类型/定义链栈节点typedef struct stacknode

7、 StackDataType data; struct stacknode *next; stacknode;typedef struct stack stacknode *top; LinkStack; /-1.链队初始化/- void InitStack(LinkStack *s) /构造一个空栈 s-top=NULL; /-2.判断栈空bool stackEmpty(LinkStack &s) return ( s.top=NULL); /-3.取栈顶元素void GetTop (LinkStack *s, StackDataType e) /若栈不空,则用e 返回S的栈顶元素,并返回O

8、K;否则返回ERROR */ int e; if(!s-top) printf(空队列n); else e= s-top-data; printf(栈顶%d:n,e); /-4.入栈void push(LinkStack *s, StackDataType e)/插入元素e为新的栈顶元 stacknode *q=(stacknode*)malloc(sizeof(stacknode); q-data=e; q-next=s-top; s-top=q; /-5.出栈void pop (LinkStack *s, StackDataType e)/若栈不空,则删除S的栈顶元素,用e返回其值,并返回

9、OK;否则返回ERROR stacknode *q=s-top; if(s-top=NULL) printf(空栈n); e=q-data; printf(栈顶元素:%dn,e); s-top=q-next; free(q); void stackPrint(LinkStack &s) stacknode *p; int e,i=1; p = s.top; if(p=NULL) printf(栈为空。n); while(p!=NULL) e=p-data; p=p-next; printf(第%d元素的值是=%dn,i,e); i+; int menu_select()/*系统菜单*/ int

10、 a; printf(n*_* 按任意键清屏并返回主菜单! *_* n); getch(); system(cls); printf(*MENU*n); printf(1.建立空栈n); printf(2.入栈n); printf(3.出栈n); printf(4.取栈顶元素n); /printf(5.销毁队列,释放内存n); printf(6.输出栈n); printf(7.退出n); printf(*n); do printf(请输入你的选择(17):); scanf(%d,&a); while (a7); return a; void main() int x; int choice=0

11、; LinkStack s; int e; for(;) switch(menu_select() case 1:InitStack(&s); printf(初始化栈完毕.n); break; case 2:printf( 输入入栈元素:); scanf(%d,&x); push(&s,x);break; case 3:pop(&s,e);/printf(出栈元素:%dn,e); break; case 4:GetTop(&s,e); /printf(栈顶元素:%dn,e); break; / case 5:pop(s); / break; case 6:stackPrint(s); brea

12、k; case 7:exit(0); 四、要求实现1、线性表、栈、队列各有什么特点和优点?2、顺序表、链表、顺序栈、链栈的实现上机二 栈的基本操作一、 上机目的1、掌握栈的思想及其存储实现,掌握顺序栈的类型定义方法。2、明确栈是特殊的线性表。3、掌握栈的常见算法的程序实现:初始化栈、判栈为空、出栈、入栈等运算。4、掌握顺序栈的简单应用。5、理解栈的算法思想,能够根据实际情况选择合适的存储结构。二、上机要求1、认真阅读和掌握本实验的算法。2、上机将本算法实现。3、保存和打印出程序的运行结果,并结合程序进行分析。三、上机内容利用栈的基本操作实现将任意一个十进制整数N转化为R进制整数。要求非负的十进

13、制整数N和R都从键盘输入;转换结果从屏幕输出。算法为:1)、定义栈的顺序存取结构2)、分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等)3)、定义一个函数用来实现上面问题:十进制整数X和R作为形参初始化栈只要不为重复做下列动作 将入栈X=X/R只要栈不为空重复做下列动作栈顶出栈输出栈顶元素四、思考题 1、栈与递归之间有何关系? 2、考虑用链栈实现栈的一些基本运算。上机三 查找和排序一、上机目的1、掌握常用的查找和排序的方法,并掌握用高级语言实现查找和排序算法的方法;2、深刻理解查找和排序的定义及各种查找和排序方法的特点,并能加以灵活应用;3、了解各种方法的查找和排序过程及其依据的原则,并掌握各种查找和排序方法的时间复杂度的分析方法。4、能通过查找和排序解决实际问题。二、上机要求1、认真掌握本实验的算法。2、上机将本算法实现。3、保存和打印出程序的运行结果,并结合程序进行分析。三、上机内容为宿舍管理人员编写一个宿舍管理查询软件, 程序采用交互工作方式,其流程如下:开 始 建立数据文件数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、快速等任选一种)查询菜单: (用二分查找实现以下操作)1.按姓名查询 2.按学号查询 3.按房号查询打印任一查询结果(可以连续操作)四、 思考问题1、什么叫做稳定排序?2、对本实验进行时间、空间的复杂度分析。

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

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