太原理工大学数据结构实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科实验报告
课程名称:数据结构B
实验项目:线性结构、树形结构、图结构、查找、排序实验地点:
专业班级:学号:
学生姓名:
指导教师:
2013年 1 月13 日
printf("%d,",L->elem[i]);
return(L->elem[i]);
}
void main()
{
int s,c;
SeqList L;
Initlist(&L);
printf("please input the length: ");
scanf("%d",&s);
printf("please input the list: ");
putseqList(&L,s);
LenList(&L);
printf("Please input an element to insert : ");
scanf("%d",&c);
InsList(&L,PositionList(&L,c),c);
OutputSeqList(&L);
printf("\n");
getch();
}
五、实验数据记录和处理
六、实验结果与分析
此程序的优点是算法简单,易于实现。但是由于采用的是顺序存储的形式,导致算法的时间性能和空间性能不是很好,而且本程序的的健壮性不是很好,对空间不够的情况没有很人性化的提出解决方案。
六、实验结果与分析
实验程序采用了二叉链表作为存储结构方便了递归函数的进行。此外由于数的定义采用了递归的形式,所以关于数的构造、遍历、以及其他运算采用递归形式,使得程序的可阅读性增强。
七、讨论、心得
改进思想:
void CountLeaf(Bitree T, int &cout)
{
if(T)
{
if((!T->lchild)&&(!T->rchild)) count++;
}
CountLeaf(T->lchild,count);
CountLeaf(T->rchild,count);
}
采用C++的引用形式,可以对叶子结点的程序上进行修正,使其看起来更为简练。
心得体会:
通过实验操作,了解到了数的递归定义的优点,以及对于程序算法上的思想指导。同时,也对数的不同存储形式有了了解。
六、实验结果与分析
图结构是一个复杂的结构,在建立图和对图进行深度优先遍历是程序执行的关键步骤其时间复杂度为0(n²)
七、讨论、心得
这次试验的程序在输入上有很高的要求,比如例题的输入是要输入不带权值的图结构,也就是说有关系用1表示,没关系用0表示。
六、实验结果与分析
程序体现了折半算法优越性,它比顺序查找的时间性能更为优越。其平均查找长度为ASL=[(n+1)/n*log(n+1)]-1
七、讨论、心得
改进思想:
#include "stdio.h"
#include "conio.h"
#include "alloc.h"
#define n 14
int count=0;
int bin_search(int a[],int low,int high,int x)
{
int mid;
count++;
if(low>high) return -1;
else
{
mid=(low+high)/2;
if(x==a[mid]) return mid;