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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数据结构——图的C语言实现

發(fā)布時間:2024/7/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构——图的C语言实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

        • 1.什么是圖?
        • 2.圖的抽象數(shù)據結構
        • 3.如何在程序中表示一個圖?
          • 3.1 鄰接矩陣
          • 3.2 鄰接表
        • 4.圖的遍歷
          • 4.1 深度優(yōu)先搜索
          • 4.2 廣度優(yōu)先搜索
        • 5.圖的C語言實現(xiàn)

1.什么是圖?

2.圖的抽象數(shù)據結構

3.如何在程序中表示一個圖?

3.1 鄰接矩陣

3.2 鄰接表

4.圖的遍歷

4.1 深度優(yōu)先搜索

4.2 廣度優(yōu)先搜索

5.圖的C語言實現(xiàn)

#include<stdio.h> #include<stdlib.h>#define WeightType int #define MaxVertexNum 3 typedef struct GNode *PtrToGNode; typedef PtrToGNode MGraph; typedef int Vertex; typedef struct ENode *PtrToENode; typedef PtrToENode Edge;struct GNode{int Nv; //頂點數(shù)int Ne; //邊數(shù)WeightType G[MaxVertexNum][MaxVertexNum]; }; struct ENode{Vertex V1,V2;WeightType Weight; };//1.初始化 MGraph CreateGraph(int VertexNum) {Vertex V,W;MGraph Graph;Graph=(MGraph)malloc(sizeof(struct GNode));Graph->Nv=VertexNum;Graph->Ne=0;for(V=0;V<Graph->Nv;V++){for(W=0;W<Graph->Nv;W++){Graph->G[V][W]=0;}}return Graph; }//2.插入邊 void InsertEdge(MGraph Graph,Edge E) {//插入邊<V1,V2>Graph->G[E->V1][E->V2]=E->Weight;//無向圖,還要插入<V2,V1>Graph->G[E->V2][E->V1]=E->Weight; }int main() {int i,j;MGraph Graph;Edge E[3];Graph=CreateGraph(3);for(i=0;i<3;i++){for(j=0;j<3;j++){printf("G[%d][%d]=%d ",i,j,Graph->G[i][j]);}}printf("\n");for(i=0;i<3;i++){E[i]=(Edge)malloc(sizeof(struct ENode));}E[0]->V1=0;E[0]->V2=1;E[0]->Weight=2;E[1]->V1=1;E[1]->V2=2;E[1]->Weight=3;E[2]->V1=0;E[2]->V2=2;E[2]->Weight=6;for(i=0;i<3;i++){InsertEdge(Graph,E[i]);}for(i=0;i<3;i++){ for(j=0;j<3;j++){printf("G[%d][%d]=%d ",i,j,Graph->G[i][j]);}}printf("\n");return 0; }

總結

以上是生活随笔為你收集整理的数据结构——图的C语言实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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