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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

图的基本操作实现(数据结构实验)

發布時間:2025/3/8 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图的基本操作实现(数据结构实验) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗項目六 圖結構基本操作的實現

課程名稱:數據結構

實驗項目名稱:圖結構基本操作的實現

實驗目的:

1.掌握圖的基本操作—遍歷。

實驗要求:

1、????分別用DFS和BFS的方法實現一個無向圖的遍歷。

實驗過程:

1、????創建一個圖(可用鄰接矩陣或鄰接表的方式進行存儲);

2、????輸入選項:0或1,0為DFS,1為BFS。

3、????分別輸出DFS和BFS兩種遍歷序列;

實驗報告中給出DFS和BFS兩種遍歷的算法代碼。

實驗結果:

1、輸入頂點集:1 2 3 4 5 6 7 8

2、輸入邊的集合:?1??2

1??3

2??4

2??5

4??8

5??8

3??6

3??7

6??7

輸入:0(DFS)

輸出:DFS遍歷序列為:12485367

輸入:1(BFS)

輸出:BFS遍歷序列為:12345678

實驗分析:

1.簡單分析DFS與BFS實現時用到的方法(DFS通過遞歸函數實現,用到棧的數據結構,BFS用到隊列的數據結構);

2.列舉調試運行過程中出現的錯誤并分析原因。

要求:

(1)?程序要添加適當的注釋,程序的書寫要采用縮進格式。

(2)?程序要具在一定的健壯性,即當輸入數據非法時,程序也能適當地做出反應。

(3)?程序要做到界面友好,在程序運行時用戶可以根據相應的提示信息進行操作。

?

(4)?上傳源程序到課堂派。順序表的源程序保存為TraversalGraph.cpp。

#include<stdio.h> #include<iostream> using namespace std; #define MaxInt 32767 //表示極大值 #define MVNum 100 //最大定點數 #define OK 1 #define MAXQSIZE 100typedef char VerTexType; //假設頂點的數據類型為字符型 typedef int ArcType; //假設邊的權值類型為整型 typedef struct {VerTexType vexs[MVNum]; //定點表ArcType arcs[MVNum][MVNum]; //鄰接矩陣int vexnum,arcnum; //圖的當前點和邊數 }AMGraph; AMGraph G;typedef struct { int *base; int front,rear; }SqQueue; int InitQueue(SqQueue &Q) {//構造一個空隊列QQ.base=new int[MAXQSIZE]; //為隊列分配一個最大容量為MAXQSIZE的數組空間if(!Q.base) exit(0); //存儲分配失敗Q.front=Q.rear=0; //頭指針和尾指針為零,隊列為空return OK; }int EnQueue(SqQueue &Q,int e){//插入元素e為Q的新的隊尾元素if((Q.rear+1)%MAXQSIZE==Q.front) //尾指針在循環意義上加1后等于頭指針,表明隊滿return 0;Q.base[Q.rear]=e; //新元素插入隊尾Q.rear=(Q.rear+1)%MAXQSIZE; //隊尾指針加1return OK; }int DeQueue(SqQueue &Q,int &e){//刪除Q的隊頭元素,用e返回其值if(Q.front==Q.rear) return 0; //隊空e=Q.base[Q.front]; //保存隊頭元素Q.front=(Q.front+1)%MAXQSIZE; //隊頭指針加1 return OK; }int QueueEmpty(SqQueue &Q) {if (Q.front==Q.rear) return OK;else return 0; }int LocateVex(AMGraph G,int b) {int a;for(a=0;a<G.vexnum;a++) //判斷頂點在第幾個位置 {if(G.vexs[a]==b) return a;}} int CreateUDN(AMGraph &G) {//采用鄰接矩陣表示法,創建無向網Gcout<<"請輸入頂點的個數:\n"; cin>>G.vexnum; //輸入總頂點數cout<<"請輸入邊的條數:\n";cin>>G.arcnum; //輸入總邊數 int i,j,k,v1,v2,w;cout<<"依次輸入頂點的信息:\n";for(i=0;i<G.vexnum;i++) //依次輸入點的信息 cin>>G.vexs[i];for(i=0;i<G.vexnum;i++) //初始化鄰接矩陣,邊的權值位置為極大值MaxInt for(j=0;j<G.vexnum;j++)G.arcs[i][j]=0;for(k=0;k<G.arcnum;k++) //構造鄰接矩陣 {cout<<"輸入一條邊依附的頂點: ";cin>>v1>>v2; //輸入一條邊依附的頂點及權值 // i=LocateVex(G,v1); // j=LocateVex(G,v2); //確定v1和v2在G中的位置,及頂點數組的下標 // G.arcs[i][j]=w; //變<v1,v2>的初值置為w // G.arcs[j][i]=G.arcs[i][j]; //置<v1,v2>的對稱邊<v2,v1>的權值為w G.arcs[v1][v2]=1;G.arcs[v2][v1]=1;} return OK; }bool visited[MVNum]; //訪問標志數組,其初值為“false” void DFS_AM(AMGraph G,int v) {//從第V個定點出發遞歸的深度優先遍歷圖G cout<<v;int w; visited[v]=1; //訪問第v個頂點,并置訪問標志數組相應分量值為truefor(w=1;w<=G.vexnum;w++) if((G.arcs[v][w]!=0)&&(!visited[w]))DFS_AM(G,w); }void DFSTraverse(AMGraph G) {//對非連接圖G做深度優先遍歷int v;for(v=0;v<G.vexnum;++v) visited[v]=0;for(v=1;v<=G.vexnum;++v)if(!visited[v]) DFS_AM(G,v); //對尚未訪問的頂點調用DFS }void BFS(AMGraph G,int v) {//按廣度優先非遞歸遍歷連接圖cout<<v;int u,w;SqQueue Q; // for(w=0;w<G.vexnum;w++) // { // visited[w]=0; // }visited[v]=1;InitQueue(Q);EnQueue(Q,v);while(!QueueEmpty(Q)){DeQueue(Q,u);for(w=1;w<=G.vexnum;w++)if((G.arcs[u][w]!=0)&&(!visited[w])){cout<<w;visited[w]=1;EnQueue(Q,w);}}}main() { CreateUDN(G);int choose,v;while(1){ cout<<"請輸入功能0(DFS)或1(BFS):\n";cin>>choose;if(choose==0){DFS_AM(G,1);break;} else if(choose==1){BFS(G,1);break;}else{cout<<"輸入錯誤,請重新輸入:\n";} }}

?

轉載于:https://www.cnblogs.com/xisheng/p/7818885.html

總結

以上是生活随笔為你收集整理的图的基本操作实现(数据结构实验)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 狠狠影院 | 日韩黄色片在线观看 | 中文字幕第7页 | 美女又大又黄 | 国产美女激情 | 美女爱爱视频 | 亚洲视频中文 | 三级黄色免费 | 在线免费av网站 | 五月天综合色 | 东北少妇不戴套对白第一次 | 美美女高清毛片视频免费观看 | 99久久综合网 | 91亚洲精品一区 | 亚洲日本韩国在线 | 国产成人精品免高潮在线观看 | 国产吃瓜黑料一区二区 | 国产精品蜜臀av | 黑人借宿巨大中文字幕 | 欧美精品三区 | 狠狠操女人 | 欧美日韩国产综合在线 | 天堂伊人网 | 国产精品亚洲视频 | 97超碰人人澡 | 欧美在线一二三区 | 国产精品第一区 | 免费成人电影在线观看 | 精品久久久久久久久久久久久久久久久久 | 亚洲码欧美码一区二区三区 | 香蕉蜜桃视频 | 国产香蕉视频在线 | 欧美性猛交aaaa片黑人 | 免费在线看黄网站 | 日本人妻伦在线中文字幕 | 亚洲精品偷拍视频 | 久久99热人妻偷产国产 | 国产视频二区 | 国产午夜精品一区二区 | 欧美日韩五区 | 第一页在线视频 | 久久精品aaaaaa毛片 | 国产黄免费 | 亚洲国产精品一区二区久久hs | 谁有av网址 | 重囗味sm一区二区三区 | 久久久久久无码午夜精品直播 | 国产免费一级视频 | 国产 欧美 日本 | 黄色一级一片免费播放 | 日本69少妇 | 亚洲精品77777 | 亚洲视频一区在线观看 | 亚洲一区av | 国产丰满大乳奶水在线视频 | 色.com | 日韩淫片| 色图色小说 | 毛片在线观看网站 | 国产精品久久久久久久久借妻 | 国产免费av片在线观看 | 91久久国语露脸精品国产高跟 | 一区二区三区黄色 | 日韩中文字幕在线一区 | 青青草在线免费 | 国产免费不卡视频 | 免费午夜激情 | 久久成年人视频 | 国产小视频在线看 | 毛片免费全部无码播放 | 女生和男生一起插插插 | 殴美一区二区 | 影音先锋在线国产 | 亚洲女同一区二区 | 中国美女黄色 | 亚洲特级毛片 | 四虎国产在线观看 | 在线h片| 国产无套精品一区二区三区 | 国产a国产片国产 | 靠逼网站在线观看 | 三上悠亚久久精品 | 亚洲av无码国产精品久久不卡 | 金鱼妻日剧免费观看完整版全集 | 四虎影院在线看 | 国产精品自产拍在线观看 | japanese强行粗暴 | 精品日韩在线播放 | 国产一区二区三区色淫影院 | 一区福利视频 | 久久精品黄aa片一区二区三区 | 中文字幕第6页 | 中文字幕一区二区三区av | 欧美日韩中文在线视频 | 手机在线观看免费av | 我和单位漂亮少妇激情 | 欧美亚洲日本 | 国产精品色婷婷 | 欧美片17c07.com |