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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算机软件课设报告.docx

1、计算机软件课设报告数据结构实验报告030910337 徐大生(一) 实验对象、目的和要求1. 合并顺序表实现两个顺序表的合并,将共同拥有的元素只存其一。2. 顺序表实现顺序表的定义、创建、插入和删除操作,将数据元素显示出来。3. 单链表实现单链表的定义、创建、插入和删除操作,将数据元素显示出来。4. 顺序栈实现顺序栈的定义、创建、插入和删除操作,将数据元素显示出来。5. 链栈实现链栈的定义、创建、插入和删除操作,将数据元素显示出来。6. 顺序队实现顺序队的定义、创建、插入和删除操作,将数据元素显示出来。7. 链队实现链队的定义、创建、插入和删除操作,将数据元素显示出来。8. 二叉树二叉树的链式

2、存储结构的数据结构定义、创建、先序/中序/后序遍历,并将结果序列输出。9. 图图的邻接表和邻接矩阵数据结构的定义、创建;图的深度优先遍历、广度优先遍历。10. 查找顺序查找、二分查找。11. 排序插入排序、选择排序、冒泡排序。12. 通讯录的制作12.1通讯录设计目的:运用数据结构中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。以把所学数据结构知识应用到实际软件开发中去。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。12.2通讯录设计内

3、容:本系统应完成以下几方面的功能:输入信息(Enter()): 调用此函数用以输入数据到内存中,此过程包括建立相应的链表或相应的数组,便于读取显示信息(Display()):用以显示输入的数据,包括从内存中读出和从磁盘中读出查找(Search()):以姓名作为关键字查找要找的信息删除信息(Delete()):用以删除选定的输入信息(姓名作为关键字)存盘(Save()):调用此函数将内存中的数据保存至磁盘中装入(Load()):调用此函数用以将之前保存在磁盘的内容读入到内存中或显示到屏幕上注:本课题中输入的数据应包括以下几项信息:姓名(NAME )学校(SCHOOL)城市(CITY)邮编(EIP

4、)国家(STATE)(二) 程序流程图1. 顺序表合并2. 顺序表3. 链表4. 顺序栈5. 链栈6. 顺序队7. 链队8. 二叉树9. 图10. 查找10.1顺序查找10.2二分查找11. 排序11.1插入排序11.2选择排序11.3冒泡排序通讯录12. 链栈(三) 源程序清单1. 合并顺序表#include#include#include#define SeqList struct listtype#define MaxSize 1000SeqList int dataMaxSize; int last;void merge(SeqList *p,SeqList *q,SeqList *c

5、) int i,j,k,a; i=0;j=0;k=0; while(ilast) c-datak=p-datai; k+;i+; while(jlast) i=0; while(ilast&p-datai!=q-dataj) i+; if(ip-last) c-datak=q-dataj; k+; j+; for(a=0;adataa);SeqList *init_SeqList() SeqList *p; p=(SeqList*)malloc(sizeof(SeqList); p-last=-1; return p;void main() SeqList *p; p=init_SeqList

6、(); int i,j; i=0; j=0; printf(Please input SeqList p:n); scanf(%d,&p-datai); while(p-datai!=-1) i+; scanf(%d,&p-datai); p-last+; SeqList *q; q=init_SeqList(); printf(Please input SeqList q:n); scanf(%d,&q-dataj); while(q-dataj!=-1) j+; scanf(%d,&q-dataj); q-last+; SeqList *c; c=init_SeqList(); merge

7、(p,q,c);2. 顺序表#include#include#define seqlist struct listtype#define maxsize 1000seqlist int datamaxsize; int last;seqlist *init_seqlist() /初始化 seqlist *L; L=(seqlist*)malloc(sizeof(seqlist); L-last=-1; return L;int insert_seqlist(seqlist *L,int i,int x) /插入 int j; if(L-last=maxsize-1) printf(The se

8、qlist is full.n); return -1; if(i=L-last+1) L-dataL-last+1=x; else for(j=L-last;j=i;j-) L-dataj+1=L-dataj; L-datai=x; L-last+; return 1;int Delete_seqlist(seqlist *L,int b) /删除 int j; if(bL-last) printf(b is invalid!n); return(0); for(j=b;jlast-1;j+) L-dataj=L-dataj+1; L-last-; return(1);void main()

9、 seqlist *L; L=init_seqlist(); int i,j,a,x,p,b; i=0; j=0; printf(Please input SeqList L:n); scanf(%d,&p); while(p!=-1) /出现-1时结束创建顺序表 L-datai=p; i+; L-last+; scanf(%d,&p); printf(please input the number to insert:a= ;x= .n); scanf(%d,&a); scanf(%d,&x); if(insert_seqlist(L,a,x) printf(The seqlist afte

10、r insert is:n); for(i=0;ilast;i+) printf(%dn,L-datai); printf(please input the number to delete:b= n); scanf(%d,&b); if(Delete_seqlist(L,b) printf(The seqlist after deletion is:n); for(i=0;ilast;i+) printf(%dn,L-datai); 3. 单链表#include#include#define NULL 0#define SLNODE struct nodeSLNODE int data; S

11、LNODE *next;int Del_LinkList(SLNODE *h,int i) SLNODE *p,*s; int j; p=h; j=0; while(p-next!=NULL&jnext; j+; if(j!=i-1) printf(i is invalid!n); return 0; else if(p-next=NULL) printf(i does not exist!n); return(0); else s=p-next; p-next=s-next; free(s); return(1); SLNODE *CREATE_SL(SLNODE *h) SLNODE *p

12、,*s; int x; h=(SLNODE*)malloc(sizeof(SLNODE); p=h; h-next=NULL; printf(please input element:n); scanf(%d,&x); while(x!=-1) s=(SLNODE*)malloc(sizeof(SLNODE); s-data=x; if(h-next=NULL) h-next=s; else p-next=s; p=s; scanf(%d,&x); p-next=NULL; return h;void main() SLNODE *h,*p; int i; h=CREATE_SL(h); pr

13、intf(The original linklist is:n); for(p=h-next;p!=NULL;p=p-next) printf(%dn,p-data); printf(please input the numder i to delet:i=n); scanf(%d,&i); if(Del_LinkList(h,i) printf(The linklist afer deletion is:n); for(p=h-next;p!=NULL;p=p-next) printf(%dn,p-data); 4. 顺序栈#include#include#define maxsize 10

14、24typedef struct stack int datamaxsize; int top;sqstack;sqstack *init_seqstack() sqstack *s; s=(sqstack*)malloc(sizeof(sqstack); s-top=-1; return s;int Pop_seqstack(sqstack *s,int x) if(s-top=-1) return 0; else x=s-datas-top; s-top-; return 1; int Top_seqstack(sqstack *s) if(s-top=-1) return 0; else

15、 return(s-datas-top);int Push_seqstack(sqstack *s,int x) if(s-top=maxsize-1) return 0; else s-top+; s-datas-top=x; return(1); void main() int a; int b; sqstack *s; s=init_seqstack(); printf(please input the element of seqstack s:a= n); scanf(%d,&a); while(a!=-1) if(Push_seqstack(s,a) scanf(%d,&a); p

16、rintf(The top element after push is:n); printf(%dn,Top_seqstack(s); if(Pop_seqstack(s,b) printf(The top element after pop is:n); printf(%dn,Top_seqstack(s); 5. 链栈#include#include#define Linkstack struct linkstack#define NULL 0int b;Linkstack int data; Linkstack *next;Linkstack *init_Linkstack() Link

17、stack *top; top=(Linkstack*)malloc(sizeof(Linkstack); top=NULL; return top;Linkstack *Push_Linkstack(Linkstack *top,int x) Linkstack *s; s=(Linkstack*)malloc(sizeof(Linkstack); s-data=x; s-next=top; top=s; return top;Linkstack *Pop_Linkstack(Linkstack *top) Linkstack *p; if(top=NULL) return NULL; el

18、se b=top-data; p=top; top=top-next; free(p); return top; void main() Linkstack *top,*q; int a; top=init_Linkstack(); printf(please input the element of the linkstack:a=n); scanf(%d,&a); while(a!=-1) top=Push_Linkstack(top,a); scanf(%d,&a); q=top; printf(the original linkstack is:n); while(q!=NULL) p

19、rintf(%dn,q-data); q=q-next; top=Pop_Linkstack(top); printf(the top of the linkstack is: %dn,b); printf(the linkstack after pop is:n); q=top; while(q!=NULL) printf(%dn,q-data); q=q-next; 6. 顺序队#include#include#define MaxSize 1024typedef struct c_queue int dataMaxSize; int front,rear; int num;c_SeQue

20、ue;c_SeQueue *init_SeQueue() c_SeQueue *q; q=(c_SeQueue*)malloc(sizeof(c_SeQueue); q-front=q-rear=MaxSize-1; q-num=0; return q;int in_SeQueue(c_SeQueue *q,int x) if(q-num=MaxSize) printf(The Queue is full!n); return(-1); else q-rear=(q-rear+1)%MaxSize; q-dataq-rear=x; q-num+; return 1; int out_SeQue

21、ue(c_SeQueue *q) if(q-num=0) printf(The Queue is empty!n); return -1; else q-front=(q-front+1)%MaxSize; printf(The element to out is: %dn,q-dataq-front); q-num-; return(1); void main() c_SeQueue *q; int s; int i,a; q=init_SeQueue(); printf(Please input the number to in_SeQueue:n); scanf(%d,&a); whil

22、e(a!=-1) if(in_SeQueue(q,a) scanf(%d,&a); printf(The original SeQueue is:n); s=q-front+1; for(i=0;inum;i+) printf(%dt,q-data(s+)%MaxSize); printf(n); if(out_SeQueue(q) printf(The SeQueue after out_Sequeue is:n); s=q-front+1; for(i=0;inum;i+) printf(%dt,q-data(s+)%MaxSize); printf(n);7. 链队#include#in

23、clude#define NULL 0#define QNODE struct QNodeint x;QNODE int data; QNODE *next;typedef struct linkqueue QNODE *front,*rear;LinkQueue;LinkQueue *init_LQueue() LinkQueue *q; QNODE *p; q=(LinkQueue*)malloc(sizeof(LinkQueue); p=(QNODE*)malloc(sizeof(QNODE); p-next=NULL; q-front=q-rear=p; return q;void i

24、n_LQueue(LinkQueue *q,int x) QNODE *p; p=(QNODE*)malloc(sizeof(QNODE); p-data=x; p-next=NULL; q-rear-next=p; q-rear=p;int IsEmpty(LinkQueue *q) if(q-front=q-rear) return 1; else return 0;int out_LQueue(LinkQueue *q) QNODE *p; if(IsEmpty(q) printf(the queue is empty!); return(0); else p=q-front-next;

25、 q-front-next=p-next; x=p-data; free(p); if(q-front-next=NULL) q-rear=q-front; return 1; void main() LinkQueue *q; QNODE *s; q=init_LQueue(); int a; printf(Please input linklist q:n); scanf(%d,&a); while(a!=-1) in_LQueue(q,a); scanf(%d,&a); printf(The original linkqueue is:n); s=q-front-next; while(s!=q-rear-next) printf(%dt,s-data); s=s-next; printf(n); if(out_LQueue(q) printf(The outed element is :%dn,x); printf(The linkqueue after outqueue is:n); s=q-front-next; while(s!=q-rear-next) printf(%dt,s-data); s=s-next; printf(n); 8. 二叉树#include

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

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