完整word版华仔数据结构实验报告Word文件下载.docx
- 文档编号:20887495
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:16
- 大小:124.25KB
完整word版华仔数据结构实验报告Word文件下载.docx
《完整word版华仔数据结构实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《完整word版华仔数据结构实验报告Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
\n"
);
scanf("
%d"
&
n);
for(i=0;
i<
n;
i++)
Pleaseinput%dthelement\n"
i+1);
A[i]);
}
returnn;
voiddisp(sqlistA,intn)
inti;
if(n==0)
ThelistisNULL:
%4d"
A[i]);
intInsert(sqlistA,intn,intx)
inti=0,j;
if(x>
=A[n-1])
A[n]=x;
else
while(A[i]<
x)
i++;
for(j=n;
j>
=i;
j--)
A[j+1]=A[j];
A[i]=x;
returnn+1;
voidmain()
sqlistA;
intx,n;
n=creat(A);
disp(A,n);
Pleaseinputyouwanttoinsert:
x);
n=Insert(A,n,x);
五、实验数据记录和处理
六、实验结果与分析
这个程序为比较基础的程序
七、讨论、心得
该程序可以帮助我加深对线性表的理解,引发我对数据结构这门课的兴趣
实验项目(树结构)
一、实验目的和要求
熟悉各种表示方法和便利方式,掌握有关算法,了解树在计算机科学中的应用。
编写递归算法,计算二叉树中的叶子节点数目
nopated++
stdlib.h>
#definemax10
typedefstructnode{
chardata;
node*lchild,*rchild;
}Bitree;
Bitree*B[max];
Bitree*Creatree(){//建立二叉树
Bitree*T,*S;
charch;
intfront,rear,sign;
sign=0;
front=0;
rear=-1;
T=NULL;
建立二叉树:
ch=getchar();
while(ch!
='
#'
){
if(ch!
@'
){//输入结点不是虚结点
S=(Bitree*)malloc(sizeof(Bitree));
S->
data=ch;
lchild=S->
rchild=NULL;
rear++;
B[rear]=S;
if(rear==front){
T=S;
sign++;
}
else{
if(sign%2==1)//寻找父结点
B[front]->
lchild=S;
if(sign%2==0){
rchild=S;
front++;
}
}
else{//输入结点为虚结点
if(sign%2==0)
front++;
ch=getchar();
returnT;
}
intSearchleaf(Bitree*T){//计算叶子数
if(T==NULL)
return0;
elseif(T->
lchild==NULL&
&
T->
rchild==NULL)
return1;
elsereturn(Searchleaf(T->
lchild)+Searchleaf(T->
rchild));
voidvisit(Bitree*T){
%c\n"
T->
data);
voidInorder(Bitree*T){//中序遍历二叉树
if(T!
=NULL){
Inorder(T->
lchild);
visit(T);
rchild);
voidmain(){
Bitree*T;
T=Creatree();
printf("
中序遍历:
Inorder(T);
叶子数%d\n"
Searchleaf(T));
。
这个程序让我加深了对中序遍历二叉树的理解
树是常用的数据结构要加深理解掌握它
实验项目(图结构)
1、实验目的和要求
熟悉图的存储结构,掌握有关算法的实现,了解图在软件中的应用。
基于深度优先算法编写程序,判别该有向图中是否存在vi到vj的路径。
malloc.h>
intn;
structVNode{//顶点
intposition;
structVNode*next;
};
structArcNode{//弧
intmark;
structVNode*first;
voidDFS(structArcNode*v,structArcNode*w){
//深度优先搜索
structVNode*L;
w->
mark=1;
L=w->
first;
while(L!
if((v+(L->
position))->
mark==0){
//递归调用
DFS(v,(v+L->
position));
L=L->
next;
intmain(){
inti,j,k;
intkey1,key2;
intnum=0;
structArcNode*p;
structVNode*temp;
structVNode*flag;
该有向图有多少个顶点:
while(n<
1){
你输入的值不合理,请重新输入:
p=(structArcNode*)malloc(n*sizeof(structArcNode));
i++){//创建有向图
请输入以V%d为弧尾的所有弧,并以-1结束输入\n"
k);
if(k==-1){
p[i].mark=0;
p[i].first=NULL;
else{
temp=(structVNode*)malloc(sizeof(structVNode));
temp->
position=k;
next=NULL;
p[i].first=temp;
flag=temp;
while(k!
=-1){
flag->
next=temp;
}
请输入要判断的两顶点的位置:
%d%d"
key1,&
key2);
//以下代码用来判断是否连通
DFS(p,(p+key1));
if(p[key2].mark==1){
V%d和V%d是连通的!
key1+1,key2+1);
p[key1].mark=0;
DFS(p,(p+key2));
if(p[key1].mark==1){
V%d和V%d不是连通的!
system("
pause"
return0;
在调试和运行中,发现了很多错误,经过反复修改,终于能运行。
由于这个程序较为复杂,程序代码也比较长,编写程序时遇到了不少的困难,经过不懈努力,对于图有了更深的认识。
实验项目(查找)
掌握查找表上的有关查找方法,并分析时间复杂度。
在二叉树中查找关键字为key的记录
#include"
stdio.h"
stdlib.h"
conio.h"
structnode
{
intdata;
structnode*lchild,*rchild;
voidMiddleOrder(structnode*q)
{if(q!
=NULL)
{MiddleOrder(q->
%d"
q->
MiddleOrder(q->
}
voidInsertNode(structnode*p,structnode*pn)
{
if(pn->
data<
p->
data)
{
if(p->
lchild==NULL)
p->
lchild=pn;
else
InsertNode(p->
lchild,pn);
rchild==NULL)
rchild=pn;
rchild,pn);
structnode*CreateBinSortTree()
intx;
structnode*t;
structnode*s;
t=NULL;
请输入有序表,输入-1时结束。
while(x!
=-1)
{s=(structnode*)malloc(sizeof(structnode));
s->
data=x;
lchild=s->
if(t==NULL)
t=s;
InsertNode(t,s);
return(t);
}structnode*bstsearch(structnode*t,intx)
while(t!
=NULL)
if(x==t->
data)returnt;
if(x<
t->
data)t=t->
lchild;
elset=t->
rchild;
returnNULL;
intmain()
{intq;
structnode*root;
root=CreateBinSortTree();
请输入需要找的关键字"
q);
MiddleOrder(root);
if(bstsearch(root,q)!
\n找到关键字%d\n"
q);
\n没有找到关键字%d\n"
getch();
程序一开始有大量错误,大量修改后可以运行
动态查找表掌握不够深刻导致很多困难
实验项目(排序)
掌握线性表排序的方法,分析时间复杂度。
对N个关键字取整数的记录进行整序,以使所有关键字为非负数的记录排在关键字为负数的记录之前,要求使用最少的附加空间,,且算法的时间复杂度为O(N)。
#include"
main()
{inti,k=0,n,t,a[100];
请输入关键字个数"
请输入关键字"
a[i]);
for(i=0;
if(a[i]>
=0)
{t=a[k];
a[k]=a[i];
a[i]=t;
k++;
for(i=0;
%-3d"
a[i]);
getch();
程序可以运行
通过本次试验,对排序过程加深了解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 版华仔 数据结构 实验 报告