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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

第十一周项目实践2 用邻接表存储的图来实现基本应用

發布時間:2025/4/16 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第十一周项目实践2 用邻接表存储的图来实现基本应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

假設圖G采用鄰接表存儲,分別設計實現以下要求的算法:?
  (1)輸出出圖G中每個頂點的出度;?
  (2)求出圖G中出度最大的一個頂點,輸出該頂點編號;?
  (3)計算圖G中出度為0的頂點數;?
  (4)判斷圖G中是否存在邊<i,j>。?
  利用下圖作為測試用圖,輸出結果。

  

#ifndef GRAPH_H_INCLUDED #define GRAPH_H_INCLUDED#define MAXV 100 //最大頂點個數 #define INF 32767 //INF表示∞ typedef int InfoType;//以下定義鄰接矩陣類型 typedef struct {int no; //頂點編號InfoType info; //頂點其他信息,在此存放帶權圖權值 } VertexType; //頂點類型typedef struct //圖的定義 {int edges[MAXV][MAXV]; //鄰接矩陣int n,e; //頂點數,弧數VertexType vexs[MAXV]; //存放頂點信息 } MGraph; //圖的鄰接矩陣類型 //以下定義鄰接表類型 typedef struct ANode //弧的結點結構類型 {int adjvex; //該弧的終點位置struct ANode *nextarc; //指向下一條弧的指針InfoType info; //該弧的相關信息,這里用于存放權值 } ArcNode;typedef int Vertex;typedef struct Vnode //鄰接表頭結點的類型 {Vertex data; //頂點信息int count; //存放頂點入度,只在拓撲排序中用ArcNode *firstarc; //指向第一條弧 } VNode;typedef VNode AdjList[MAXV]; //AdjList是鄰接表類型typedef struct {AdjList adjlist; //鄰接表int n,e; //圖中頂點數n和邊數e } ALGraph; //圖的鄰接表類型 void ArrayToList(int *Arr, int n, ALGraph *&); //用普通數組構造圖的鄰接表 #endif // GRAPH_H_INCLUDED graph.cpp#include <stdio.h> #include <malloc.h> #include "graph.h" //功能:由一個反映圖中頂點鄰接關系的二維數組,構造出用鄰接矩陣存儲的圖 //參數:Arr - 數組名,由于形式參數為二維數組時必須給出每行的元素個數,在此將參數Arr聲明為一維數組名(指向int的指針) // n - 矩陣的階數 // g - 要構造出來的鄰接矩陣數據結構 void ArrayToList(int *Arr, int n, ALGraph *&G) {int i,j,count=0; //count用于統計邊數,即矩陣中非0元素個數ArcNode *p;G=(ALGraph *)malloc(sizeof(ALGraph));G->n=n;for (i=0; i<n; i++) //給鄰接表中所有頭節點的指針域置初值G->adjlist[i].firstarc=NULL;for (i=0; i<n; i++) //檢查鄰接矩陣中每個元素for (j=n-1; j>=0; j--)if (Arr[i*n+j]!=0) //存在一條邊,將Arr看作n×n的二維數組,Arr[i*n+j]=Arr[i][j](n是有多少列){p=(ArcNode *)malloc(sizeof(ArcNode)); //創建一個節點*pp->adjvex=j;p->info=Arr[i*n+j];p->nextarc=G->adjlist[i].firstarc; //采用頭插法插入*p,和鏈表的操作一樣G->adjlist[i].firstarc=p;}G->e=count; } main.cpp #include <stdio.h> #include <malloc.h> #include "graph.h" //返回圖G中編號為v的頂點的出度 int OutDegree(ALGraph *G,int v) {ArcNode *p;int n=0;p=G->adjlist[v].firstarc;while (p!=NULL){n++;p=p->nextarc;}return n; } //輸出圖G中每個頂點的出度 void OutDs(ALGraph *G) {int i;for (i=0; i<G->n; i++)printf(" 頂點%d:%d\n",i,OutDegree(G,i)); } //輸出圖G中出度最大的一個頂點 void OutMaxDs(ALGraph *G) {int maxv=0,maxds=0,i,x;for (i=0; i<G->n; i++){x=OutDegree(G,i);if (x>maxds){maxds=x;maxv=i;}}printf("頂點%d,出度=%d\n",maxv,maxds); } //輸出圖G中出度為0的頂點數 void ZeroDs(ALGraph *G) {int i,x;for (i=0; i<G->n; i++){x=OutDegree(G,i);if (x==0)printf("%2d",i);}printf("\n"); } //返回圖G中是否存在邊<i,j> bool Arc(ALGraph *G, int i,int j) {ArcNode *p;bool found = false;p=G->adjlist[i].firstarc;while (p!=NULL){if(p->adjvex==j){found = true;break;}p=p->nextarc;}return found; } int main() {ALGraph *G;int A[7][7]={{0,1,1,1,0,0,0},{0,0,0,0,1,0,0},{0,0,0,0,1,1,0},{0,0,0,0,0,0,1},{0,0,0,0,0,0,0},{0,0,0,1,1,0,1},{0,1,0,0,0,0,0}};ArrayToList(A[0], 7, G);//建立鄰接矩陣結構printf("(1)各頂點出度:\n");OutDs(G);printf("(2)最大出度的頂點信息:");OutMaxDs(G);printf("(3)出度為0的頂點:");ZeroDs(G);printf("(4)邊<2,6>存在嗎?");if(Arc(G,2,6))printf("是\n");elseprintf("否\n");printf("\n");return 0; }


總結

以上是生活随笔為你收集整理的第十一周项目实践2 用邻接表存储的图来实现基本应用的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 激情五月在线观看 | 国产一区二区免费在线 | 朝鲜一级黄色片 | 久久久久无码精品国产 | 欧美在线视频a | 亚洲乱码国产乱码精品 | 四虎综合 | 美国一级大黄一片免费中文 | 在线看成人 | 免费毛片大全 | 亚洲国产精品一 | 九九福利| 国产视色 | 国产欧美综合视频 | 亚洲欧美日韩综合在线 | 国产成人无码一二三区视频 | 99热超碰在线 | cao久久| 国产无遮挡18禁无码网站不卡 | 97伦伦午夜电影理伦片 | www.久久| 国模私拍一区二区 | 欧美精品成人一区二区三区四区 | 黄色免费看片 | 人妻少妇一区二区三区 | 亚洲欧美在线免费观看 | 久草精品在线观看 | 免费观看一级黄色片 | 不卡一二三 | 免费成人在线观看动漫 | 天堂av资源在线 | 性猛交xxxx乱大交孕妇2十 | 老妇裸体性激交老太视频 | julia一区二区三区在线观看 | 亚洲图片欧美激情 | 激情五月色婷婷 | 校园春色av | 国产精品刺激 | 99色综合| 春色校园激情 | 小草av在线| 日韩午夜激情 | 亚洲综合一区在线 | 手机av免费在线观看 | 婷婷免费视频 | 国产午夜福利视频在线观看 | 右手影院亚洲欧美 | 日韩欧美日韩 | 精品国产久 | 国产福利av| 伊在线久久丫 | 久久中文字幕网 | 精品久久久久久无码人妻 | 久久一精品 | 国产欧美日本在线 | 抽插丰满内射高潮视频 | 婷婷九月 | 国产精品丝袜一区二区 | 在线观看免费视频a | 日本大奶少妇 | 波多野结衣理论片 | 在线观看视频一区二区 | 91美女在线观看 | 性欧美18一19内谢 | 亚洲福利一区二区 | 亚洲成人久久久 | 久久久久亚洲av无码专区桃色 | 在线免费观看你懂的 | 中国爆后菊女人的视频 | 肥婆大荫蒂欧美另类 | 久草三级| 国产亚洲精品久久久久婷婷瑜伽 | 尤物网址在线观看 | 国产香蕉视频在线观看 | 操碰在线视频 | 公肉吊粗大爽色翁浪妇视频 | 大地资源在线观看免费高清版粤语 | 国产乱码精品一区二区三区不卡 | 久久噜噜噜精品国产亚洲综合 | 懂色av一区二区三区四区五区 | 中出白浆| 91碰碰| 天天cao| 人妻体内射精一区二区 | 亚洲第三区 | 一级在线毛片 | 美女的隐私免费看 | 色窝窝无码一区二区三区 | 久久草视频 | 激情噜噜 | 亚洲精品aaaa | 黄色动漫在线免费观看 | 欢乐谷在线观看免费播放高清 | 久久精品人妻av一区二区三区 | 国产懂色av | 午夜精品三级久久久有码 | 日本不卡一区二区在线观看 | 国产黄网在线观看 | 亚洲欧美一区二区三区四区 |