日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

西南科技大学OJ题 图的按录入顺序深度优先搜索1068

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 西南科技大学OJ题 图的按录入顺序深度优先搜索1068 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

圖的按錄入順序深度優先搜索

?5000(ms)

?10000(kb)

?2295?/?4163

Tags:?深度優先

圖的深度優先搜索類似于樹的先根遍歷,即從某個結點開始,先訪問該結點,然后深度訪問該結點的第一棵子樹,依次為第二頂子樹。如此進行下去,直到所有的結點都訪問為止。在該題中,假定所有的結點以“A”至“Z”中的若干字符表示,且要求結點的訪問順序根據錄入的順序進行訪問。如果結點錄入的順序為HUEAK,從H開始進行深度優先搜索,則可能的搜索結果為:H->A->K->U>E.

輸入

第一行為一個整數n,表示頂點的個數,第二行為n個大寫字母構成的字符串,表示頂點,接下來是為一個n*n大小的整數矩陣,表示圖的鄰接關系。數字為0表示不鄰接,否則為相應的邊的長度。最后一行為一個字符,表示要求進行深度優先搜索的起始頂點。

輸出

用一行輸出深度優先搜索結果,起始點為給定的頂點。

樣例輸入

5 HUEAK 0 0 2 3 0 0 0 0 7 4 2 0 0 0 0 3 7 0 0 1 0 4 0 1 0 H

樣例輸出

HEAUK #include<stdio.h> void CreateMap(int edges[100][100],int n)//創建鄰接矩陣 {for(int i=0;i<n;i++) for(int j=0;j<n;j++) scanf("%d",&edges[i][j]); } void DFS(int i,int a[],char str[],int edges[100][100],int n)//深度優先搜索 {if(a[i]==0)//改點為被標記時 {printf("%c",str[i]);//輸出對應的符號,并且標記 a[i]=1;for(int j=0;j<n;j++)//深度遞歸,遞歸結束后再j+1;然后再遞歸 {if(edges[i][j]!=0)DFS(j,a,str,edges,n);}} } int main() {int edges[100][100];int n;char str[100];scanf("%d",&n);scanf("%s",str);CreateMap(edges,n);char data;getchar();//抵消回車字符 scanf("%c",&data);for(int i=0;i<n;i++){if(str[i]==data)//找到該字符對應的行 {int a[100]={0};//初始化標記 DFS(i,a,str,edges,n);break;}} }

?

總結

以上是生活随笔為你收集整理的西南科技大学OJ题 图的按录入顺序深度优先搜索1068的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。