数据结构程序设计实验.doc
《数据结构程序设计实验.doc》由会员分享,可在线阅读,更多相关《数据结构程序设计实验.doc(35页珍藏版)》请在沃文网上搜索。
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
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 程序设计 实验