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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计报告实验报告doc.docx

1、数据结构课程设计报告实验报告doc数据结构课程实验报告专业:指导老师:班级: :学号:完成日期:一、实验目的1、掌握线性表的顺序存储结构和链式存储结构;2、熟练掌握顺序表和链表基本算法的实现;3、掌握利用线性表数据结构解决实际问题的方法和基本技巧;4、按照实验题目要求独立正确地完成实验容(编写、调试算法程序,提交程序清单及及相关实验数据与运行结果);5、按时提交实验报告。二、实验环境计算机、C语言程序设计环境三、实验学时2学时,选做实验。四、实验容一、顺序表的基本操作实现实验要求:数据元素类型ElemType取整型int。按照顺序存储结构实现如下算法(各算法边界条件和返回结果适当给出):1创建

2、任意整数线性表(即线性表的元素值随机在键盘上输入),长度限定在20之;2打印(遍历)该线性表(依次打印出表中元素值);3在线性表中查找第i个元素,并返回其值;4在线性表中第i个元素之前插入一已知元素;5在线性表中删除第i个元素;6求线性表中所有元素值(整数)之和;二、链表(带头结点)基本操作实验要求:数据元素类型ElemType取字符型char。按照动态单循环链表结构实现如下算法(各算法边界条件适当给出):1创建任意字符型有序(递增排序)单循环链表(即链表的字符元素随机在键盘上输入),长度限定在15之;2打印(遍历)该链表(依次打印出表中元素值);3在链表中查找第i个元素,i合法返回元素值,否

3、则,返回FALSE;4在链表中查找与一已知字符相同的第一个结点,有则返回TRUE,否则,返回FALSE;5在链表中按照有序方式插入一已知字符元素;6在线性表中删除第i个结点;7计算链表的长度。五、实验容一步骤:#include#include#define MAX 20typedef int ElemType;typedef struct ElemType elemMAX; int last;SeqList;void InitList(SeqList *L) L-last=-1;void PrintList(SeqList *L) int i; printf(n现在的数据为:); for(i=

4、0;ilast;i+) printf(%d ,L-elemi); void CreatList(SeqList *L) ElemType e; int i=0; printf(n输入数据(-1退出):); scanf(%d,&e); while(e!=-1) if(ielemi=e; L-last=i; i+; else printf(n表满!); scanf(%d,&e); void Locate(SeqList *L, int i,ElemType e) i=0; while (ilast)&(L-elemi!=e) i+; if (ilast) printf(n%d在顺序表中第%d个位置

5、上。,e,i+1); else printf(n没有此数!);void InsList(SeqList *L, int i, ElemType e) int k; if(iL-last+2) printf(n插入位置i值不合法); else if(L-last=MAX-1) printf(n表已满无法插入); else for(k=L-last; k=i-1; k-) L-elemk+1=L-elemk; L-elemi-1=e; L-last+; PrintList(L); void DelList(SeqList *L,int i,ElemType *e) int k; if(iL-las

6、t+1) printf(n删除位置不合法!); else *e=L-elemi-1; for(k=i; klast; k+) L-elemk-1=L-elemk; L-last=L-last-1; PrintList(L);void SumList(SeqList *L) int j,sum=0; for(j=0;jlast;j+) sum=sum+L-elemj; printf(所有元素之和:%d,sum);void menu() printf(n*菜单*); printf(n 1.创建任意整数线性表); printf(n 2.打印(遍历)线性表); printf(n 3.查找元素); pr

7、intf(n 4.插入元素); printf(n 5.删除元素); printf(n 6.所有元素之和); printf(n 7.退出); printf(n*);void main() int i; int flag=0; ElemType e; SeqList *L; L=(SeqList*)malloc(sizeof(SeqList); InitList(L); menu(); while(!flag) printf(nn请输入你的选择:); scanf(%d,&i); switch(i) case 1: CreatList(L); break; case 2: PrintList(L);

8、 break; case 3: printf(输入要查找的数值:); scanf(%d,&e); Locate(L,i,e); break; case 4: printf(输入插入位置和数据值(a b):); scanf(%d%d,&i,&e); InsList(L,i,e); break; case 5: printf(输入要删除元素的位置:); scanf(%d,&i); DelList(L,i,&e); break; case 6: SumList(L); break; case 7: flag=1; break; 六、实验容一测试数据与实验结果:七、实验容二步骤:#include#in

9、clude#define MAX 15#define TURE 1#define FALSE 0typedef char ElemType;typedef struct Node char date; struct Node * next;Node,*LinkList;void InitList(LinkList *L) *L=(LinkList)malloc(sizeof(char); (*L)-next=NULL;void PrintfLink(LinkList L) LinkList p; p=L-next; printf(链表为:); while(p!=NULL) printf(%c

10、,p-date); p=p-next; void Create(LinkList L) LinkList s,r; char c; int flag=1; int n; r=L; printf(元素个数:); scanf(%d,&n); if(nMAX) printf(超出限定长度!); else printf(输入字符(以#键结束):); while(flag) scanf(%c,&c); if(c!=#) s=(Node*)malloc(sizeof(char); s-date=c; r-next=s; r=s; else flag=0; r-next =NULL; void Order(

11、LinkList L) char c; Node *r,*q,*p; for(r=L-next;r-next!=NULL;r=r-next ) p=r; for(q=r-next;q;q=q-next ) if(q-date)date) p=q; if(p!=r) c=r-date; r-date=p-date; p-date=c; PrintfLink(L); void Get(LinkList L, int i, ElemType *e) int j; Node *p; p=L; j=-1; while (p-next!=NULL)&(jnext; j+; *e=p-date ; if(i

12、=j) printf(第%d个元素为:%c,i,*e); else printf(FALSE); void Locate(LinkList L, ElemType e) int i=1; LinkList p; p=L-next ; while(p&p-date!=e) i=i+; p=p-next; if(!p) printf(FALSEn); else printf(TRUEn); printf(该元素在第%d个位置!,i-1); void InsList(LinkList L,int i,ElemType e) Node *p,*s; int k=0; p=L; while(p!=NUL

13、L&knext; k=k+; if(!p) printf(插入位置不合理!); s=(Node*)malloc(sizeof(char); s-date=e; s-next=p-next; p-next=s; Order(L);void DelList(LinkList L,int i,ElemType *e) Node *p,*r; int j; j=0; p=L; while(p-next!=NULL)&(jnext; j+; if(p-next!=NULL) p-next=p-next-next; r=p-next; *e=r-date ; printf(删除第%d个元素:%cn,i,*

14、e); else printf(删除结点的位置i不合理!); void ListLength(LinkList L) Node *p;int j=0; p=L-next; while(p!=NULL) p=p-next; j+; printf(单链表的长度:%d,j);void menu() printf(n*菜单*); printf(n 1.创建任意字符型单循环链表); printf(n 2.打印(遍历)该链表); printf(n 3.查找第i个元素); printf(n 4.查找与一已知字符相同的元素); printf(n 5.插入元素); printf(n 6.删除第i个结点); pr

15、intf(n 7.计算链表的长度); printf(n 8.退出); printf(n*);void main() int i; int flag=0; ElemType e; LinkList L; L=(LinkList)malloc(sizeof(char); InitList(&L); menu(); while(!flag) printf(nn请输入你的选择(18):); scanf(%d,&i); switch(i) case 1: Create(L); break; case 2: Order(L); break; case 3: printf(输入要查找的第i个元素:); sc

16、anf(%d,&i); Get(L,i,&e); break; case 4: printf(输入查找的元素:); rewind(stdin); scanf(%c,&e); Locate(L,e); break; case 5: printf(输入插入的元素:); rewind(stdin); scanf(%c,&e); InsList(L,i,e); break; case 6: printf(输入要删除第几个结点:); scanf(%d,&i); DelList(L,i,&e); break; case 7: ListLength(L); break; case 8: flag=1; break; 八、实验容二测试数据与实验结果:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2