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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

信管0805 彭信儒 012158.docx

1、信管0805 彭信儒 012158北京信息科技大学信息管理学院实 验 报 告课程名称 数据结构 实验项目 数据结构中的线性结构 实验仪器 PC机一台 专 业 信息管理信息系统 班级/学号 信管0805|2008012158 学生姓名 彭信儒 实验日期 2009年10月 实验地点 小营计算中心 成 绩 指导教师 王晓蓉 北京信息科技大学信息管理学院(数据结构)实验报告实验课程名称: 数据结构 专业: 信息管理信息系统 班级:信管0805学号:2008012158姓名:彭信儒 实验名称线性结构实验地点小营计算中心实验时间8机时1. 实验目的:掌握线性结构中的线性表、栈和队列的类型定义、存储形式(线

2、性存储和链式存储),熟练掌握相关类型的特征及主要操作实现算法。能根据题目要求完成程序设计并能正常运行。2. 实验内容:1 用顺序表完成一个班级的10个学生的信息(包括:学号、姓名、性别、入学成绩)管理:能够显示、增加、删除、查询学生的指定信息(如:姓名或成绩)。2 利用单向链表完成对一组(如5个)整型数据的信息管理:能够增加、删除、修改(按位置或值)指定的数据结点。3 利用单向链表完成将两个有序线性表合并为新的有序单向链表。4 利用顺序栈完成初始化栈、入栈、出栈和显示栈内元素的操作。5 利用链栈完成初始化栈、入栈、出栈和显示栈内元素的操作。6 利用链队列完成初始化队列、入队、出队和显示队内元素

3、的操作。3. 实验要求:上机前认真阅读实验内容,在理解的基础上写出所有程序代码。应尽量使用注释说明、使用缩进格式以增加程序的可读性。4. 实验准备:硬件:PC机一台软件:VC6.0数据结构实验模板5. 实验过程:1.#includeusing namespace std;struct student int num; char name20; char sex10; int chj;typedef struct student *elem; int length;sqlist;void menu(sqlist &l);void show(sqlist &l);void add(sqlist &

4、l);void del(sqlist &l);void ch(sqlist &l);int main() sqlist l; student *p; l.elem=(student *)malloc(100*sizeof(student); p=l.elem; l.length=0; for(int i=1;i=2;i+) cout请输入第i个学生的信息(学号、姓名、性别、成绩):p-num; cinp-name; cinp-sex; cinp-chj; p+; l.length+; menu(l); return 0;void menu(sqlist &l) int i; char j; c

5、out请选择您要进行的操作:1.显示 2.增加 3.删除 4.查询i; if(i=1) show(l); cout是否进行其他操作?(y/n)j; if(j=y) menu(l); if(j=n) system(cls); if(i=2) add(l); cout是否进行其他操作?(y/n)j; if(j=y) menu(l); if(j=n) system(cls); if(i=3) del(l); cout是否进行其他操作?(y/n)j; if(j=y) menu(l); if(j=n) system(cls); if(i=4) ch(l); cout是否进行其他操作?(y/n)j; if

6、(j=y) menu(l); if(j=n) system(cls); void show(sqlist &l) for(int i=1;i=l.length;i+) cout第i个学生的信息:endl; cout学号:l.elemi-1.numendl; cout姓名:l.elemi-1.nameendl; cout性别:l.elemi-1.sexendl; cout成绩:l.elemi-1.chjendl; void add(sqlist &l) int i; student *s,*p; cout请输入元素的插入位置:i; p=&(l.elemi-1); for(s=&(l.eleml.

7、length-1);s=p;-s) *(s+1)=*s; cout请输入学生的信息(学号、姓名、性别、成绩):p-num; cinp-name; cinp-sex; cinp-chj; p=s; l.length+;void del(sqlist &l) int i; student *p,*q; cout请输入要删除的元素位置:i; p=&(l.elemi-1); q=l.elem+l.length-1; for(+p;p=q;+p) *(p-1)=*p; l.length-;void ch(sqlist &l) int x; cout请输入要查询的学生学号:x; for(int i=1;i

8、=l.length;i+) if(l.elemi-1.num=x) cout被查询同学的信息:endl; cout学号:l.elemi-1.numendl; cout姓名:l.elemi-1.nameendl; cout性别:l.elemi-1.sexendl; cout成绩:l.elemi-1.chjendl; 2.#includeusing namespace std;typedef struct lnode int data; struct lnode *next;lnode,*linklist;void menu(linklist &l);void show(linklist &l);

9、void add(linklist &l);void del(linklist &l);void xg(linklist &l);int main() linklist l,m,n; int x,e; l=(linklist)malloc(sizeof(lnode); l-next=NULL; n=l; coutx; for(int i=1;i=x;i+) cout请输入第ie; m=(linklist)malloc(sizeof(lnode); m-data=e; n-next=m; m-next=NULL; n=n-next; menu(l); return 0;void menu(lin

10、klist &l) int i; char j; cout请选择您要进行的操作:1.显示 2.增加 3.删除 4.修改i; if(i=1) show(l); cout是否进行其他操作?(y/n)j; if(j=y) menu(l); if(j=n) system(cls); if(i=2) add(l); cout是否进行其他操作?(y/n)j; if(j=y) menu(l); if(j=n) system(cls); if(i=3) del(l); cout是否进行其他操作?(y/n)j; if(j=y) menu(l); if(j=n) system(cls); if(i=4) xg(l

11、); cout是否进行其他操作?(y/n)j; if(j=y) menu(l); if(j=n) system(cls); void show(linklist &l) linklist p; p=l-next; while(p) coutdatanext; coutendl;void add(linklist &l) linklist p,s; int e,i,j=0; couti; p=l; while(p&jnext; j+; coute; s=(linklist)malloc(sizeof(lnode); s-data=e; s-next=p-next; p-next=s;void d

12、el(linklist &l) linklist p,q; int i,j=0; couti; p=l; while(p-next&jnext; j+; q=p-next; p-next=q-next; free(q);void xg(linklist &l) linklist p; int e,i,j=0; couti; p=l; while(p-next&jnext; j+; coute; p-data=e;3.#includeusing namespace std;typedef struct lnode int data; struct lnode *next;lnode,*linkl

13、ist;int main() linklist la,lb,lc,x,y,p,q; linklist pa,pb,pc; linklist s; int m,n,e,f; la=(linklist)malloc(sizeof(lnode); la-next=NULL; lb=(linklist)malloc(sizeof(lnode); lb-next=NULL; lc=(linklist)malloc(sizeof(lnode); lc-next=NULL; x=la; coutm; for(int i=1;i=m;i+) cout请输入第ie; y=(linklist)malloc(siz

14、eof(lnode); y-data=e; x-next=y; y-next=NULL; x=x-next; p=lb; coutn; for(int j=1;j=n;j+) cout请输入第jf; q=(linklist)malloc(sizeof(lnode); q-data=f; p-next=q; q-next=NULL; p=p-next; pa=la-next; pb=lb-next; lc=pc=la; while(pa&pb) if(pa-datadata) pc-next=pa; pc=pa; pa=pa-next; else pc-next=pb; pc=pb; pb=pb

15、-next; if(pa) pc-next=pa; else pc-next=pb; free(lb); s=lc-next; while(s) coutdatanext; coutendl; return 0;4.#includeusing namespace std;typedef struct int *base; int *top; int stacksize;sqstack;void menu(sqstack &s);void add(sqstack &s);void del(sqstack &s);void show(sqstack &s);int main() sqstack s

16、; int x,e; s.base=(int *)malloc(100 *sizeof(int); s.top=s.base; s.stacksize=100; coutx; for(int i=1;i=x;i+) cout请输入第ie; *s.top=e; s.top+; menu(s); return 0;void menu(sqstack &s) int i; char j; cout请选择您要进行的操作:1.增加 2.删除 3.显示i; if(i=1) add(s); cout是否进行其他操作?(y/n)j; if(j=y) menu(s); if(j=n) system(cls);

17、if(i=2) del(s); cout是否进行其他操作?(y/n)j; if(j=y) menu(s); if(j=n) system(cls); if(i=3) show(s); cout是否进行其他操作?(y/n)j; if(j=y) menu(s); if(j=n) system(cls); void add(sqstack &s) int e; coute; *s.top=e; s.top+;void del(sqstack &s) if(s.base=s.top) cout抱歉,此栈已为空栈。endl; else s.top-; void show(sqstack &s) int

18、*p; p=s.top; while(p!=s.base) p-; cout*p ; coutendl;5.#includeusing namespace std;typedef struct node int data; struct node *next;node,*linkstack;void menu(linkstack &s);void add(linkstack &s);void del(linkstack &s);void show(linkstack &s);int main() linkstack s,p; int x,e; s=NULL; coutx; for(int i=

19、1;i=x;i+) cout请输入第ie; p=(linkstack)malloc(sizeof(node); p-data=e; p-next=s; s=p; menu(s); return 0;void menu(linkstack &s) int i; char j; cout请选择您要进行的操作:1.增加 2.删除 3.显示i; if(i=1) add(s); cout是否进行其他操作?(y/n)j; if(j=y) menu(s); if(j=n) system(cls); if(i=2) del(s); cout是否进行其他操作?(y/n)j; if(j=y) menu(s); i

20、f(j=n) system(cls); if(i=3) show(s); cout是否进行其他操作?(y/n)j; if(j=y) menu(s); if(j=n) system(cls); void add(linkstack &s) int e; linkstack p; coute; p=(linkstack)malloc(sizeof(node); p-data=e; p-next=s; s=p;void del(linkstack &s) linkstack p; if(s=NULL) cout抱歉,此链栈已为空栈。next; free(p);void show(linkstack

21、&s) linkstack p; p=s; while(p) coutdatanext; coutendl;6.#includeusing namespace std;typedef struct qnode int data; struct qnode *next;qnode,*queueptr;typedef struct queueptr front; queueptr rear;linkqueue;void menu(linkqueue &Q);void add(linkqueue &Q);void del(linkqueue &Q);void show(linkqueue &Q);i

22、nt main() linkqueue Q; queueptr p; int x,e; Q.front=Q.rear=(queueptr)malloc(sizeof(qnode); Q.front-next=NULL; coutx; for(int i=1;i=x;i+) cout请输入第ie; p=(queueptr)malloc(sizeof(qnode); p-data=e; p-next=NULL; Q.rear-next=p; Q.rear=p; menu(Q); return 0;void menu(linkqueue &Q) int i; char j; cout请选择您要进行的操作:

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

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