160517胡志豪实验报告07图的应用一Word文档格式.docx

上传人:b****1 文档编号:13882088 上传时间:2022-10-14 格式:DOCX 页数:7 大小:16.41KB
下载 相关 举报
160517胡志豪实验报告07图的应用一Word文档格式.docx_第1页
第1页 / 共7页
160517胡志豪实验报告07图的应用一Word文档格式.docx_第2页
第2页 / 共7页
160517胡志豪实验报告07图的应用一Word文档格式.docx_第3页
第3页 / 共7页
160517胡志豪实验报告07图的应用一Word文档格式.docx_第4页
第4页 / 共7页
160517胡志豪实验报告07图的应用一Word文档格式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

160517胡志豪实验报告07图的应用一Word文档格式.docx

《160517胡志豪实验报告07图的应用一Word文档格式.docx》由会员分享,可在线阅读,更多相关《160517胡志豪实验报告07图的应用一Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。

160517胡志豪实验报告07图的应用一Word文档格式.docx

成绩评定表

类别

评分标准

分值

得分

合计

上机表现

积极出勤、遵守纪律

按要求完成设计任务

30分

程序与报告

程序代码规范、功能正确

报告详实完整、体现收获

70分

说明:

 

评阅教师:

张俊

日期:

2018年5月22日

实验内容

实验内容:

图的两种遍历方法及对应的生成树。

自己编写源程序,把图的深度优先遍历、广度优先遍历改为输出深度优先生成树、广度优先生成树。

实验说明:

(1)读懂教师给定的程序或课本的程序;

(2)输入图;

(3)把显示遍历序列改为显示深度优先、广度优先生成树。

#ifndefDIGRPH_H

#defineDIGRPH_H

#include<

stdio.h>

malloc.h>

#defineMAXV100

#defineINF32767

typedefcharInfoType;

typedefstructANode

{

intadjvex;

structANode*nextarc;

intweight;

}ArcNode;

typedefstructVnode

InfoTypeinfo;

ArcNode*firstarc;

}VNode;

typedefstruct

VNodeadjlist[MAXV];

intn,e;

}AdjGraph;

voidCreateAdj(AdjGraph*&

G,intA[MAXV][MAXV],intn,inte)

inti,j;

ArcNode*p;

G=(AdjGraph*)malloc(sizeof(AdjGraph));

for(i=0;

i<

n;

i++)

G->

adjlist[i].firstarc=NULL;

for(j=n-1;

j>

=0;

j--)

if(A[i][j]!

=0&

&

A[i][j]!

=INF)

{

p=(ArcNode*)malloc(sizeof(ArcNode));

p->

adjvex=j;

weight=A[i][j];

nextarc=G->

adjlist[i].firstarc;

G->

adjlist[i].firstarc=p;

}

G->

n=n;

G->

e=e;

voidDispAdj(AdjGraph*G)

{

inti;

for(i=0;

G->

{

p=G->

printf("

%3d:

"

i);

while(p!

=NULL)

{

printf("

%3d[%d]→"

p->

adjvex,p->

weight);

p=p->

nextarc;

}

printf("

∧\n"

);

}

voidDestroyAdj(AdjGraph*&

G)

ArcNode*pre,*p;

for(i=0;

pre=G->

if(pre!

{

p=pre->

while(p!

free(pre);

pre=p;

p=p->

}

free(pre);

free(G);

voidDFS(AdjGraph*G,intv)

intw;

visited[v]=1;

printf("

%d"

v);

p=G->

adjlist[v].firstarc;

while(p!

{

w=p->

adjvex;

if(visited[w]==0)

DFS(G,w);

p=p->

#endif

#ifndefSQ_QUEUE

#defineSQ_QUEUE

#defineMaxSize100

typedefstruct

ElemTypedata[MaxSize];

intfront,rear;

//队首和队尾指针

}SqQueue;

voidInitQueue(SqQueue*&

q)

{q=(SqQueue*)malloc(sizeof(SqQueue));

q->

front=q->

rear=0;

voidDestroyQueue(SqQueue*&

free(q);

boolQueueEmpty(SqQueue*q)

return(q->

front==q->

rear);

boolenQueue(SqQueue*&

q,ElemTypee)

{if((q->

rear+1)%MaxSize==q->

front)//队满上溢出

returnfalse;

rear=(q->

rear+1)%MaxSize;

data[q->

rear]=e;

returntrue;

booldeQueue(SqQueue*&

q,ElemType&

e)

{if(q->

rear)//队空下溢出

front=(q->

front+1)%MaxSize;

e=q->

front];

#endif//SQ_QUEUE

#include"

digraph.h"

intmain()

intA[6][MAXV]={{0,5,0,7,0,0},

{0,0,4,0,0,0},

{8,0,0,0,0,9},

{0,0,5,0,0,6},

{3,0,0,0,1,0}};

AdjGraph*G;

CreateAdj(G,A,6,10);

DispAdj(G);

DestroyAdj(G);

实验总结

(注:

专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。

可复制、编制,期待你的好评与关注)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1