欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:824736       资源大小:183.50KB        全文页数:35页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构程序设计实验.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


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

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

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

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