IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 數(shù)據(jù)結(jié)構(gòu) 圖的概念及怎么實現(xiàn)

數(shù)據(jù)結(jié)構(gòu) 圖的概念及怎么實現(xiàn) 時間:2018-01-25      來源:未知

本文主要想闡述有關(guān)圖的一些基本概念,及基本的實現(xiàn)方法。圖論算法是數(shù)據(jù)結(jié)構(gòu)中比線性表和樹更為復(fù)雜的算法,但并不影響它在實踐中的重要作用,和實際生活中的應(yīng)用,所以掌握這種算法還是蠻有用和有趣的。在這里,我會給大家介紹幾個生活中發(fā)生的問題,他們可以轉(zhuǎn)化成圖論問題。然后再給大家介紹一下圖的c語言基本實現(xiàn)。

一、圖的基本概念

概念1:圖。一個圖(graph)G=(V,E)由頂點(vertex)集和邊(edge)集組成。每一條變就是一個點對(v,w),其中v,w∈V。有時也把邊稱作弧。如果點對是有序的,那么圖就叫做是有向的。有向的圖有時也叫有向圖。頂點v和w鄰接當(dāng)且僅當(dāng)(v,w)∈E。點對可以無向,我們稱作無向圖。有時候邊還具有第三種成分,稱作權(quán)或值。

圖(Graph)也可以形式化描述為: Graph = (V,E) 其中,V={Vi | Vi ∈datatype, i=0,1,……,n-1} 是圖中元素Vi(稱為頂點Vertex )的集合,n=0時,V為空集,記為φ。

概念2:強連通的。如果在一個無向圖中從每一個頂點到每個其他頂點都存在一條路徑,則稱該無向圖是連通的。具有這樣性質(zhì)的有向圖稱為是強連通的。

概念3:頂點的度(Degree)。用圖形來說明。設(shè)E為無向圖G中邊的集合,V、V’為圖中的頂點。若(V,V’)∈E,則稱V和V’互為鄰接點,或稱V與V’相鄰接,邊(V,V’)與V、V’相關(guān)聯(lián)。某頂點V的度記為D(V),代表與V相關(guān)聯(lián)的邊的條數(shù)。如:

數(shù)據(jù)結(jié)構(gòu)圖

D(V1)=3 ,D(V2)=2。

又設(shè)A為有向圖G中弧的集合,若∈A,則稱V鄰接到V’,V’鄰接自V,與V、V’相關(guān)聯(lián)。頂點V的入度記為ID(V),是圖中以V為弧頭的弧的條數(shù);而頂點V的出度記為OD(V),是圖中以V為弧尾的弧的條數(shù)。

頂點V的度D(V)=ID(V)+OD(V)。如:

數(shù)據(jù)結(jié)構(gòu)圖

ID(V2)=2,OD(V2)=2,故D(V2)=4。

現(xiàn)實生活中能夠用圖進(jìn)行模擬的實例:

比如航空系統(tǒng)。每個機場是一個頂點,在由兩個頂點表示的機場間如果存在一條直達(dá)航線,那么這兩個頂點就用一條邊連接。邊可以有一個權(quán),表示時間、距離或飛行的費用。有理由假設(shè),這樣的一個圖是有向圖,因為在不同的方向上飛機可能所用時間或所花的費用會不同(例如,依賴于地方稅)。可能我們更愿意航空系統(tǒng)是強連通的,這樣就總能夠從任一機場飛到領(lǐng)帶的任意一個機場,我們也可能愿意迅速確定任意兩個機場之間的佳航線。佳可以是指邊數(shù)少的路徑,也可以是根據(jù)一種或所有的全中量度所算出的佳者。

交通可以用一個圖來模型化。每一條接到交叉口表示一個頂點,而每一條街道就是一條邊。邊的值可能代表速度限度,伙食容量,等等。此時我們可能是需要找出一條短路,或用該信息找出可能產(chǎn)生交通瓶頸的位置。

一、圖的c語言實現(xiàn)

如下:
#define MAXN 64           ∥大頂點數(shù)∥
typedef char vtype;            ∥設(shè)頂點為字符類型∥
typedef int adjtype;           ∥設(shè)鄰接矩陣A中元素aij為整型∥
typedef struct
{
vtype V[MAXN];             ∥頂點存儲空間∥
    adjtype A[MAXN][MAXN];     ∥鄰接矩陣∥
} mgraph;               
void createmgraph(mgraph G)    ∥建立無向圖的數(shù)組表示法∥
{  
int  i, j, n;
    vtype  ch, u, v;
    adjtype  w;
    i = n = 0;
    ch=getchar( );             ∥輸入頂點∥ 
    while (ch!=‘#’)          ∥#為結(jié)束符∥
{  
n++;                   ∥頂點計數(shù)∥
        if (n>MAXN-1) 
ERROR(n);          ∥溢出處理∥
        G.V[i++]=ch; ch=getchar( ); ∥存入頂點, 并讀下一頂點∥
}
    for (i=0; i<n; i++)    ∥初始化鄰接矩陣∥
        for (j=0; j<n; j++)
            G.A[i][j]=max;       ∥設(shè)max為機器表示的∞∥
  scanf(“%c %c %d”, &u, &v, &w);   ∥讀入一條邊<u, v>及權(quán)值 ∥
    while (u != ‘#’)           ∥u=‘#’時結(jié)束∥
    {   
i = locatevex(G,u);      ∥求u的序號∥
        j = locatevex(G,v);      ∥求v的序號∥
        G.A[i][j] = G.A[j][i] = w;      ∥鄰接矩陣賦值(對稱)∥
        scanf (“%c %c %d”,&u,&v,&w);  ∥讀下一條邊∥
}                        
}  

設(shè)圖中頂點數(shù)為n,邊的條數(shù)為e。第一個while循環(huán)執(zhí)行次數(shù)為n;后兩個for循環(huán)的執(zhí)行次數(shù)約為n2;后一個while循環(huán)執(zhí)行次數(shù)為e;故算法的時間復(fù)雜度為T(n,e)=O(n2+e)。若n2>>e,則時間復(fù)雜度為O(n2)。

說明:mgraph G;則G為存儲圖的一個結(jié)構(gòu)體變量,G.V[MAXN]為頂點的存儲空間,而G.A[MAXN][MAXN]為鄰接矩陣。

數(shù)組表示法存儲結(jié)構(gòu)的建立算法比較簡單:讀入頂點和關(guān)系集(弧、邊),建立頂點表和鄰接矩陣即可。

由于篇幅的限制,關(guān)于圖的存儲問題,關(guān)于廣度優(yōu)先搜索、深度優(yōu)先搜索、拓?fù)浣Y(jié)構(gòu)的處理,我會在后續(xù)的篇幅中,整理總結(jié)。

本文參照文獻(xiàn):

[1]. 《數(shù)據(jù)結(jié)構(gòu)體與算法分析--c語言描述》 Mark Allen Weiss 著 機械工業(yè)出版社出版。

[2].華清遠(yuǎn)見 《數(shù)據(jù)結(jié)構(gòu)》課件

上一篇:ubuntu新版本安裝全攻略教程

下一篇:嵌入式系統(tǒng)移植步驟

熱點文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 气瓶探伤设备-气瓶在线离线无损探伤检测系统-中高低压力容器超声波自动探伤设备-山科飞泰 | 宁波雷豹机电科技有限公司|雷豹冷风机|雷豹工业大风扇|MFC18000|MFC16000|MFC6000|EF3622|EF4222|EF4822|移动工业蒸发式冷风机空气冷却器|大型工业空调扇|雷豹移动式工业大风扇|雷豹大风扇|生产厂家|公司官网 | 舞台阻燃幕布_舞台幕布_舞台吊杆_舞台机械_TYWT-泰州通用舞台设备有限公司 | 阴_阳离子聚丙烯酰胺价格_聚合氯化铝厂家_聚合硫酸铁-巩义市亿洋水处理材料有限公司 | 山东正奇塑料机械有限公司,山东塑料机械,水带机组,塑料管材机,山东吹膜机组厂家,山东农膜机厂家 山东长青石油液压机械有限公司-致力于石油机械设备的研发制造,提供定制服务 | 均高生物科技(上海)有限公司-二十年专注于均质&middot;乳化&middot;粉碎&middot;分散工艺 | 上海律师_上海法律咨询_律师在线咨询网站_上海律师事务所-沪律网 | 乌海市腐植酸盐加工,内蒙古腐植酸钠,内蒙古型煤粘合剂生产厂家|创联腐植酸盐加工有限公司 | 离岸快车 - 专业的海外离岸公司香港公司离岸账户问答平台 | 乌鲁木齐万疆通管道设备有限公司 销售热线;13565955557-新疆 乌鲁木齐 万疆通 管道设备 波纹补偿器 膨胀节 金属软管 伸缩器 管件 阀门 维修 | 油气回收设备厂家_加油站/化工厂油气回收装置解决方案-金辉环保 油漆颜料砂磨机,油墨水砂磨机,水性涂料砂磨机-常州市奥能达机械设备有限公司 | 昆明塑料包装袋|云南塑料包装袋|昆明塑料袋厂家|云南茶叶大米蔬菜种子食品包装袋就来阮门包装有限公司 | 液压万能试验机价格_电子万能试验机|摩擦磨损试验机厂家-济南辰达试验机制造有限公司 | 专注全球电机测试-电机测试系统-AIP艾普【官网】 | 首页|广东蒙泰高新纤维股份有限公司|丙纶细旦丝|丙纶异形丝|丙纶FDY网络丝 - 广东蒙泰高新纤维股份有限公司 | 喷涂机器人|自动喷涂生产线|自动喷涂设备|自动化生产线-深圳市荣德机器人科技有限公司 | 木工圆锯片,进口锯片厂家,合金锯片生产厂家,木工合金锯片,BAK(百恪)刀具有限公司 | 压力机-压装机-黄油机-黄油泵-[广东品嘉灵]专业定制各种精密压装设备 | 全网营销_网络推广外包_全网营销代运营公司-湖南微望互动 | 全自动码垛机械手,码垛机器人,拆包机,缠绕机,开箱封箱装箱机厂家-山东昊宇自动化设备有限公司 | 小型环境空气质量连续监测系统-烟气排放连续监测仪(碳排放)-青岛明德环保仪器有限公司 | 济宁山银煤矿机械有限公司,钻采工具,防爆电器,凿岩机械,风动工具,矿山机械,建筑机械,支护设备,通风防尘,铁路设备,仪器仪表,大型设备,矿用泵,钎具类,消防类,矿车类,配件区类 | 天之水网_新时代主流门户网站 十大文明网,主流新媒 、 值得信赖、关注我、温暖你! | 盐城市城镇化建设投资集团有限公司[盐城国资企业、盐城国资集团、盐城文化旅游、盐城基础设施、盐城土地开发、盐城粮食收储] | 微型电磁阀_隔膜泵_活塞泵_微型水泵_微型真空泵_微型气泵【东莞市宗旨电子科技有限公司】 | 网咖网址导航,网咖分类目录,网址目录,免费收录国内外、各行业优秀网站网站。 | 机械智能停车设备_智能机械式立体停车库_立体车库停车设备租赁_山东科博机械车库 | 显微镜|金相显微镜|光学显微镜专业生产商-上海光学仪器厂 | 均高生物科技(上海)有限公司-二十年专注于均质&middot;乳化&middot;粉碎&middot;分散工艺 | 久久91精品久久91综合_国产亚洲自拍一区_国产精品第1页_亚洲高清视频一区_91成人午夜在线精品_亚洲国产精品网站在线播放_亚洲国产成人久久综合区_国产精品亚洲专区在线观看_免费视频精品一区二区三区 | 数据采集卡_北京科尔特兴业测控技术研究所 | 松下PLC经销商-松下传感器-放大器-电磁阀-光电开关-金器[东莞均钛]品牌气动元件及工控产品一站式供应商 | 中标通国际认证(深圳)有限公司-知识产权管理体系认证-湖北知识产权贯标 | 消防水电施工,消防水电安装,消防水电施工公司,消防水电改造-亿杰北京消防工程公司 | 新2025澳门天天开好彩生肖对照表,2025新澳精准正版免费,2025新澳今晚开奖资料大全,新澳门四肖期期准免费,新澳门今晚9点30分开奖结果 | 形创(CREAFORM)3D扫描仪|三维检测|三维数字化处理|3D设备租赁|3D打印|——北京中显恒业仪器仪表有限公司 | 西安木包装箱出口托盘定做价格-抽真空实木包装箱免熏蒸木箱多层板木箱哪家好-模压托盘及白松原木-西安宇森木业 | 深圳人才网_深圳招聘网_【官方网站】 | 空气消毒机厂家-医用空气消毒机-医用空气净化器-山东佳境医疗 | 网带输送机_皮带_滚筒_链板输送机_不锈钢输送链条生产厂家-宁津县鸿昶机械设备有限公司 | 重庆中医针灸推拿培训_产后康复理疗师培训_重庆市六合职业培训学校 |