数据结构与算法实验报告

上传人:第*** 文档编号:57516472 上传时间:2018-10-22 格式:DOC 页数:10 大小:99KB
返回 下载 相关 举报
数据结构与算法实验报告_第1页
第1页 / 共10页
数据结构与算法实验报告_第2页
第2页 / 共10页
数据结构与算法实验报告_第3页
第3页 / 共10页
数据结构与算法实验报告_第4页
第4页 / 共10页
数据结构与算法实验报告_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《数据结构与算法实验报告》由会员分享,可在线阅读,更多相关《数据结构与算法实验报告(10页珍藏版)》请在金锄头文库上搜索。

1、数据结构实验报告数据结构实验报告题目:题目: 线性表线性表 班级:班级:网络工程网络工程 1401 班班学号:学号: 1408020106 指导教师:指导教师: 高峰高峰 日期:日期: 2016/7/6 实验一:实验一:线性表一:实验要求一:实验要求掌握数据结构中线性表的基本概念。熟练掌握线性表的基本操作:创建、插入、删除、查找、输出、求长度 及合并并运算在顺序存储结构撒谎能够的实验。熟练掌握链表的各种操作和应用。二实验内容二实验内容1. 编程实现在顺序存储的有序表中插入一个元素(数据类型为整型) 。 2. 编程实现把顺序表中从 i 个元素开始的 k 个元素删除(数据类型为整型) 。 三:实验

2、过程及步骤三:实验过程及步骤源代码:源代码:#include #include #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef struct int * elem; int length; int listsize; SqList; /SqList sq; void InitList_Sq(SqList *sq) /初始化列表 sq-elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int); sq-length=0; sq-listsize=LIST_INIT_SIZE; printf(“

3、-申请空间成功-!n“); void GetElem(SqList *sq,int i)/获取第 i 位置元素的值 int *p; p= printf(“%d“,*p); printf(“n“); int ListInsert_Sq(SqList *sq,int i,int a)/在 i 位置之前插入 a int *p,*q; if(isq-length+1) printf(“-位置不合法-!n“);return 0; if(sq-length=sq-listsize) int* newbase=(int *)realloc(sq-elem,(sq-listsize+LISTINCREMENT

4、)*sizeof(int); if(!newbase) printf(“申请空间溢出n“);return 0; sq-elem=newbase; sq-listsize+=LISTINCREMENT; p=/p 指向第 i 位置的元素 q=/q 指向最后一个元素for(;q=p;-q) *(q+1)=*q; *p=a; +sq-length; return 1; int ListDelete_Sq(SqList *sq,int i) /删除 i 位置上的值 int *p,*q; if(isq-length) return 0; p=/p 指向第 i 位置的元素 q=sq-elem+sq-len

5、gth-1;/q 指向最后一个元素for(+p;plength; return 1; void visit(SqList *sq)/输出数据 int i=1; for(;ilength;i+) int *p; p= printf(“%d“,*p); printf(“ “); void main() int i=1,a=0,boo=1,number=0; SqList s,*sq; sq= InitList_Sq(sq); printf(“初始化空表n“); printf(“输入数据个数:n“);scanf(“%d“, printf(“输入%d 个数据:“,number);printf(“n“)

6、; for(;isq-length) printf(“-输出位置的数据不存在-n“); else GetElem(sq,a); 步骤:步骤: 1.初始化空表 2.顺序插入数据后输出所有元素 3.选择删除位置,删除数据后输出所有元素 4.选择查看的数据位置,输出选择查看的数据四:实验结果及分析四:实验结果及分析分析:分析:本程序在实现顺序存储插入以及删除i 个元素开始的 k 个元素删除(数据类型为 整型) 。之外在删除、查看是实时输出结果,并且可以查看希望显示数据的位置。数据结构实验报告数据结构实验报告题目:题目: 树树 班级:班级:网络工程网络工程 1401 班班学号:学号: 14080201

7、06 指导教师:指导教师: 高峰高峰 日期:日期: 2016/7/6 实验二:实验二:树一:实验要求一:实验要求掌握二叉树,二叉树排序数的概念和存储方法。掌握二叉树的遍历算法。 熟练掌握编写实现树的各种运算的算法。二实验内容二实验内容统计一棵二叉树中每种类型节点数(度为 0/1/2 的节点数) 。三:实验过程及步骤三:实验过程及步骤#include #include #include typedef struct BitNodeint data;struct BitNode *lchild,*rchild;BitNode,*BitTree; BitTree BitTreeInit()BitTr

8、ee BT;BT=(BitNode*)malloc(sizeof(BitNode);BT=NULL;return BT; BitTree BitTreeCreat(BitTree printf(“请输入节点的内容,输入 0 时结束建立!n“);scanf(“%d“,if(ch=0)BT=NULL;elseBT=(BitTree)malloc(sizeof(BitNode);BT-data=ch;BitTreeCreat(BT-lchild);BitTreeCreat(BT-rchild);return BT; void BitTreeEmpty(BitTree BT)if(BT=NULL)pr

9、intf(“树为空!n“);elseprintf(“树非空!n“); void PreOrderTraverse(BitTree BT)if(BT!=NULL)printf(“树结点的内容为:%dn“,BT-data);PreOrderTraverse(BT-lchild);PreOrderTraverse(BT-rchild); void InOrderTraverse(BitTree BT)if(BT!=NULL)InOrderTraverse(BT-lchild);printf(“树结点的内容为:%dn“,BT-data);InOrderTraverse(BT-rchild); void

10、 PostOrderTraverse(BitTree BT)if(BT!=NULL)PostOrderTraverse(BT-lchild);PostOrderTraverse(BT-lchild);printf(“树结点的内容为:%dn“,BT-data); int count(BitTree BT)if(BT=NULL)return 0;elsereturn(count(BT-lchild)+count(BT-rchild)+1); int BinTreeDepth(BitTree BT)int i=1,j=1;if(BT=NULL)return 0;elsei=BinTreeDepth(

11、BT-lchild);j=BinTreeDepth(BT-rchild);if(ij)return(i+1);elsereturn (j+1);void BinTreeClear(BitTree if(BT-rchild)BinTreeClear(BT-rchild);free(BT);BT=NULL; main()int i=1,j,l;BitTree BT;while(i!=0)printf(“-欢迎使用-n“);printf(“请选择要进行的操作n“);printf(“1.初始化一棵树 2.建立一棵树 3.判断树是否为空n“);printf(“4.按前序遍历树 5.按中序遍历树 6.按后

12、序遍历树n“);printf(“7.求树的深度 8.求树的结点数 9.把树清空n“);printf(“0.退出操作界面n“);printf(“-谢谢使用-n“);scanf(“%d“,switch(j)case 1:BT=BitTreeInit();printf(“树已经初始化!n“);break;case 2:BitTreeCreat(BT);break;case 3:BitTreeEmpty(BT);break;case 4:PreOrderTraverse(BT);break;case 5:InOrderTraverse(BT);break;case 6:PostOrderTravers

13、e(BT);break;case 7:l=BinTreeDepth(BT);printf(“树的深度为:%dn“,l);break;case 8:l=count(BT);printf(“树的结点数为:%dn“,l);break;case 9:BinTreeClear(BT);printf(“树已经清空!n“);break;case 0:exit(0); 步骤:步骤: 1.1.选择进行的操作 2.2.初始化、建立、判断树是否空、先/中/后序遍历、求深度/结点,清空树 3.3.显示结果四:实验结果及分析四:实验结果及分析分析:分析:本程序不仅可以统计一棵二叉树中每种类型节点数(度为 0/1/2 的节点数) 。 同时让他有以下功能:1.初始化一棵树。2.建立一棵树。3.判断树是否为空。4. 分别按先/中/后序遍历树。5.求树的深度。6.求树的结点数。7.清空树。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号