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

加入VIP,免费下载资源
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构程序设计实验.doc

1、电 子 科 技 大 学实 验 报 告学生姓名: 学 号: 指导教师:实验地点:主楼A2-412 实验时间:2011.11.12一、实验室名称: 二、实验项目名称:单链表中表头、表尾及表的中间插入删除操作 三、实验学时:2学时四、实验原理:单链表的插入、删除算法五、实验目的:学会对单链表的各种操作六、实验内容:采用链式存储结构存储a,b,c,d,e,f六个字符,并完成如下操作:l (a) 显示第3个数据;l (b) 在第2个数据后插入el (c) 删除第3个数据并打印整个链表l (d) 删除链表七、实验器材(设备、元器件):PC机一台,C语言编译环境八、实验步骤:#include #includ

2、e typedef struct nodeint data;struct node *next;node,ListNode; char List_Data(ListNode *L) int i; for(i=0;inext; printf(L-data/n,L-data);/*输出第三个数*/ /*在位置pos后面插入值为elem的一个数*/ void List_Insert(ListNode *L,int pos,char elem) int i; ListNode *s; for(i=0;inext; s-data=elem; s-next=L-next; L-next=s; /*删除位置

3、为pos的值*/ char List_Remove(ListNode *L,int pos) int i; ListNode *q; for(i=0;inext; q=L-next; L-next=q-next; free(q); if(L) printf(L-data/n,L-data); L=L-next; int main() ListNode *L; int i; char A=a,b,c,d,e; if(L) L-data=Ai; L=L-next; i+; List_Data(L); List_Insert(L,2,e); List_Remove(L,3); return 0; 九

4、、实验数据及结果分析:十、实验结论:该实验程序可实现对单链表插入和删除操作十一、总结及心得体会:通过本实验,我们学会了对单链表的各种操作,熟悉了如何编译和调试程序。 报 告 评 分: 指导教师签字:电 子 科 技 大 学实 验 报 告学生姓名: 学 号: 指导教师:实验地点:主楼A2-412 实验时间:2011.11.12一、实验室名称: 二、实验项目名称:二叉树的左右子树交换 三、实验学时:2学时四、实验原理:对二叉树的左右子树指针的交换操作和算法五、实验目的:学会对二叉树的各种操作六、实验内容:构建如图所示的二叉树;l 编写递归算法,交换二叉树的左右子树;l 输出按先序遍历得到的新二叉树结

5、果。七、实验器材(设备、元器件):PC机一台,C语言编译环境八、实验步骤:#includetypedef struct TreeNodeint data;struct TreeNode *lchild,*rchild,*parent;TreeNode,*Tree;void Tree_Order(TreeNode *bt)if(bt!=0&bt-lchild-lchild!=0)bt=bt-lchild;void Tree_Change1(TreeNode *bt)/*交换左右子树的值*/ int k; TreeNode *s,*t; s=bt-lchild; t=bt-rchild;k=s-d

6、ata;s-data=t-data;t-data=k;void Tree_Change2(TreeNode *bt) if(bt-parent!=NULL)bt=bt-parent;Tree_Change1(bt); else bt=bt-rchild; Tree_Change1(bt);void PreOrder(TreeNode *bt)/*先序遍历并输出值*/ if(bt!=NULL) printf(bt-data/n,bt-data); PreOrder(bt-lchild); PreOrder(bt-rchild); int main() TreeNode *bt; Tree_Ord

7、er(bt); Tree_Change1(bt); Tree_Change2(bt); PreOrder(bt); return 0;九、实验数据及结果分析:十、实验结论:该实验程序可实现对二叉树左右子树的交换操作十一、总结及心得体会:通过本实验,我们学会了对二叉树左右子树的交换操作,熟悉了对程序的编译和和调试工作。 报 告 评 分: 指导教师签字:电 子 科 技 大 学实 验 报 告学生姓名: 学 号: 指导教师:实验地点:主楼A2-412 实验时间:2011.11.25一、实验室名称: 二、实验项目名称:图的最短路径 三、实验学时:2学时四、实验原理:图的邻接矩阵存储算法和Dijkstra

8、算法五、实验目的:学会对图的各种操作六、实验内容:用邻接矩阵存储并显示;l 用Dijkstra算法编程找出从a到其余顶点的最短路径(要求显示这条路径并显示相应的最短路径值).七、实验器材(设备、元器件):PC机一台,C语言编译环境八、实验步骤:#include#include#define MAX 7 typedef struct Cell int adj; int vertex1; int vertex2; Cells; typedef struct Graph int adj1; int vernum1; int vernum2; Graphs;void Map(Cells* C,Grap

9、hs* R,int m,int n) int i,j,t; printf(输入图中总的顶点数和边数分别为:%dt%dn,7,11); for(i=0;im;i+) printf(请输入边Ci的vertex1,vertex2和边上的权值adj:n); scanf(%dt%dt%dn,&Ci.vertex1,&Ci.vertex2,&Ci.adj); for(i=0;in;i+) for(j=0;jn;j+) for(t=0;tm;t+) Rij.vernum1=i; Rij.vernum2=j; if(i=Ct.vertex1&j=Ct.vertex2) Rij.adj1=Ct.adj; for

10、(i=0;in;i+) for(j=0;jn;j+) printf( Rij.adj=:%dt,Rij.adj1); void shortpath_DIJ(Graphs* R,int CostMAX,int n,int v0,int Distance)/求第k个顶点到各顶点最短距离 int flagMAX; int mindis,dis; int i,j,u; for(i=0;in;i+) for(j=0;jn;j+) Costij=Rij.adj1; for(i=0;in;i+) Distancei=Costv0i; flagi=0; flagv0=1; for(i=1;in;i+) min

11、dis=27; for(j=1;j=n;j+) if(flagj=0&Distancejmindis) u=j; mindis=Distancej; flagu=1; for(j=1;jn;j+) if(flagj=0) dis=Distanceu+Costuj; Distancej=(Distancejdis)?Distancej:dis; int main() Cells* C = new Cells11; Graphs* R =(Graphs*)malloc(sizeof(Graphs77); int Distance7; int Cost77; Map(C,R,11,7); short

12、path_DIJ(R,Cost,7,1,Distance); return 0;九、实验数据及结果分析:十、实验结论:该实验可实现对图的矩阵存储操作和用Dijkstra算法实现图的最短路径操作十一、总结及心得体会:通过本实验,我们学会了对图的存储操作和算出最短路径操作,熟悉了对程序的编译和调试操作。 报 告 评 分: 指导教师签字:电 子 科 技 大 学实 验 报 告学生姓名: 学 号: 指导教师:实验地点:主楼A2-412 实验时间:2011.11.25一、实验室名称: 二、实验项目名称:图书管理(检索,插入和删除) 三、实验学时:2学时四、实验原理:结构算法、二分法算法等查找算法,图的插入

13、、删除等算法五、实验目的:学会编写程序实现对图书的管理操作六、实验内容:创建一个图书管理系统(包括每本书的编号、书名、作者、分类信息),程序采用交互式工作方式,流程如下:1、 书籍管理:完成增加新书籍和删除功能,并在完成操作之后按关键字(编号、书名、作者、种类)进行排序(插入、冒泡、快速、堆排序、归并排序等任选一种); 2、 书籍查找:用二分法实现下述功能l 按编号查找l 按书名查找l 按作者查找l 按分类查找七、实验器材(设备、元器件):PC机一台,C语言编译环境八、实验步骤:#include#includetypedef struct Book int Number; char BookN

14、ame21; char Writer21; char Type21;Books;void Book_1(Books B,int m,int n) int i,j,t,t1,t2,T; int L1,L2,L3,L4,L5,L6,L7; int Num; char Name21,Wri21,Ty21; printf(增加新书籍n); for(i=0;im;i+) if(Bi.Number=0) scanf(%dt%st%st%sn,&Bi.Number,&Bi.BookName,&Bi.Writer,&Bi.Type); printf(删除书籍n); if(n=m) Bn.Number=0; f

15、or(i=0;i21;i+) Bn.BookNamei=0; Bn.Writeri=0; Bn.Typei=0; /* for(i=0;im;i+) printf(%dt%st%st%sn,Bi.Number,Bi.BookName21,Bi.Writer21,Bi.Type21); */ printf(按关键字排序n); for(i=0;im;i+) for(j=i+1;jm;j+) L1=strlen(Bj.BookName); L2=strlen(Bi.BookName); L3=strlen(Bj.Writer); L4=strlen(Bi.Writer); L5=strlen(Bj.

16、Type); L6=strlen(Bi.Type); if(Bj.NumberBi.Number&L1L2&L3L4&L5L6) Num=Bj.Number; Bj.Number=Bi.Number; Bi.Number=Num; for(t=0;t21;t+) Namet=Bj.BookNamet; Writ=Bj.Writert; Tyt=Bj.Typet; Bj.BookNamet=Bi.BookNamet; Bj.Writert=Bi.Writert; Bj.Typet=Bi.Typet; Bi.BookNamet=Namet; Bi.Writert=Writ; Bi.Typet=Ty

17、t; for(i=0;im;i+) printf(%dt%st%st%sn,Bi.Number,Bi.BookName21,Bi.Writer21,Bi.Type21); printf(按二分法查找n); Book s; scanf(%d%s%s%sn,&s.Number,&s.BookName,&s.Writer,&s.Type); while(Tm) t1=0; t2=m-1; T=(t1+t2)/2; L1=strlen(Bj.BookName); L2=strlen(Bi.BookName); L3=strlen(Bj.Writer); L4=strlen(Bi.Writer); L5

18、=strlen(Bj.Type); L6=strlen(Bi.Type); if(BT.Number=s.Number|BT.BookName=s.BookName|BT.Writer=s.Writer|BT.Type=s.Type) printf(%dt%st%st%sn,BT.Number,BT.BookName,BT.Writer,BT.Type); else if(BT.Numbers.Number|L1L2|L3L4|L5L6) t2=T; else t1=T; if(t1=t2) break; int main() Books B8; Book_1(B,8,4); return 0;九、实验数据及结果分析:十、实验结论:该实验程序可实现对图书的插入和删除操作,可实现用二分法来查找书籍。十一、总结及心得体会:通过本实验,我们学会了编写程序来实现对图书的管理工作,熟悉了对程序的编译和调试。 报 告 评 分: 指导教师签字:35

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922