




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程設(shè)計(jì)題目九:圖的廣度優(yōu)先遍歷
基本要求:
采用鄰接表存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)圖的廣度優(yōu)先遍歷。
(2)對(duì)任意給定的圖(頂點(diǎn)數(shù)和邊數(shù)自定),建立它的鄰接表并輸出;
(3)實(shí)現(xiàn)圖的廣度優(yōu)先遍歷*/
#include<>
#include<>
#include<>
#defineMAX_NUM20
intvisited[MAX_NUM]={0};
typedefintVertexType;
typedefenum{DG=1,UDG}GraphKind;
typedefstructArcNode
{
intadjvex;
intweight;
structArcNode*nextarc;
ArcNode*info;
}ArcNode;
typedefstructVNode
{
VertexTypedata;
ArcNode*firstarc;
}VNode,AdjList[MAX_NUM];
typedefstruct
{
AdjListvertices;
intvexnum,arcnum;
GraphKindkind;
}ALGraph;
voidPRIN(ALGraph&G);
voidCreat_adjgraph(ALGraph&G);
voidbfs(ALGraph&G,intv);
voidCreat_adjgraphDG(ALGraph&G);
voidCreat_adjgraphUDG(ALGraph&G);
voidCreat_adjgraph(ALGraph&G);
voidCreat_adjgraphDG(ALGraph&G)
{
inti,s,d;
ArcNode*p=NULL,*q=NULL;=DG;
printf("請(qǐng)輸入頂點(diǎn)數(shù)和邊數(shù):");
scanf("%d%d",&,&;
for(i=0;i<;++i)
{
printf("第%d個(gè)頂點(diǎn)信息:",i+1);
scanf("%d",&[i].data);
[i].firstarc=NULL;}
for(i=0;i<;++i)
{
printf("第%d條邊的起始頂點(diǎn)編號(hào)和終止頂點(diǎn)編號(hào):",i+1);
scanf("%d%d",&s,&d);
while(s<1||s>||d<1||d>
{
printf("編號(hào)超出范圍,重新輸入");
scanf("%d%d",&s,&d);}
s--;
d--;
p=new(ArcNode);
p->adjvex=d;
p->nextarc=[s].firstarc;
[s].firstarc=p;
}
}
voidCreat_adjgraphUDG(ALGraph&G)
{
inti,s,d;
ArcNode*p,*q;
=UDG;
printf("請(qǐng)輸入頂點(diǎn)數(shù)和邊數(shù):");
scanf("%d%d",&,&;
for(i=0;i<;++i)
{
printf("第%d個(gè)頂點(diǎn)信息:",i+1);
scanf("%d",&[i].data);
[i].firstarc=NULL;}
for(i=0;i<;++i)
{
printf("第%d條邊的起始頂點(diǎn)編號(hào)和終止頂點(diǎn)編號(hào):",i+1);
scanf("%d%d",&s,&d);
while(s<1||s>||d<1||d>
{
printf("編號(hào)超出范圍,重新輸入");
scanf("%d%d",&s,&d);}
s--;
d--;
p=new(ArcNode);
p->adjvex=d;
p->nextarc=[s].firstarc;
[s].firstarc=p;
q=new(ArcNode);
q->adjvex=s;
q->nextarc=[d].firstarc;
[d].firstarc=q;
}
}
voidPRIN(ALGraph&G)
{
inti;
ArcNode*p;
if==DG||==UDG)
{
for(i=0;i<;++i)
{
printf("V%d:",[i].data);
p=[i].firstarc;
while(p!=NULL)
{
printf("%d\t",p->adjvex+1);
p=p->nextarc;}
printf("\n");}
}
}
voidbfs(ALGraph&G,intv)
{
v--;
ArcNode*p;
intqueue[MAX_NUM],front=0,rear=0;
intw,i;
for(i=0;i<;i++)visited[i]=0;
printf("%4d",v+1);
visited[v]=1;
rear=(rear+1)%MAX_NUM;
queue[rear]=v;
while(front!=rear)
{
front=(front+1)%MAX_NUM;
w=queue[front];
p=[w].firstarc;
while(p!=NULL)
{
if(visited[p->adjvex]==0)
{
printf("%3d",p->adjvex+1);
visited[p->adjvex]=1;
rear=(rear+1)%MAX_NUM;
queue[rear]=p->adjvex;}
p=p->nextarc;}
}
printf("\n");
}
voidCreat_adjgraph(ALGraph&G)
{
printf("1:有向圖2:無向圖\n");
printf("請(qǐng)根據(jù)上述提示輸入圖的類型:"
);
scanf("%d",&;
switch
{
caseDG:Creat_adjgraphDG(G);PRIN(G);break;
caseUDG:Creat_adjgraphUDG(G);PRIN(G);break;
default:printf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 展覽場(chǎng)地設(shè)備租賃合同(14篇)
- 廣東科學(xué)技術(shù)職業(yè)學(xué)院《微機(jī)原理與應(yīng)用A》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南工業(yè)職業(yè)技術(shù)學(xué)院《種子質(zhì)量檢驗(yàn)理論與技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 青海民族大學(xué)《用戶研究與體驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 揚(yáng)州中瑞酒店職業(yè)學(xué)院《競(jìng)技武術(shù)套路5》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年遼寧省建筑安全員B證考試題庫
- 蘇州大學(xué)應(yīng)用技術(shù)學(xué)院《色譜學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年江西省安全員C證(專職安全員)考試題庫
- 山西財(cái)貿(mào)職業(yè)技術(shù)學(xué)院《工程信息學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 哈爾濱幼兒師范高等專科學(xué)校《英語課程標(biāo)準(zhǔn)解析與教材研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 空天地一體化公路智能巡查技術(shù)應(yīng)用與實(shí)踐
- CJJ129-2009 城市快速路設(shè)計(jì)規(guī)程
- punctuation-英語標(biāo)點(diǎn)的使用
- 股權(quán)糾紛案例分析申訴報(bào)告
- 2022云南省中考道法真題試卷和答案
- 如何在質(zhì)保到期后提供售后服務(wù)
- 勞務(wù)經(jīng)濟(jì)人培訓(xùn)課件
- 海爾集團(tuán)周云杰發(fā)表主題為《無界生態(tài) 無限可能》戰(zhàn)略報(bào)告
- 漢字真有趣教學(xué)設(shè)計(jì)
- 經(jīng)典成語故事葉公好龍
- 自導(dǎo)式教學(xué)心得體會(huì)范文【3篇】
評(píng)論
0/150
提交評(píng)論