图的存储之邻接矩阵

IT技术2年前 (2022)发布 IT大王
0

邻接矩阵存图:

c++

 1 #include<iostream>
 2 using namespace std;
 3 
 4 class AM//邻接矩阵存图 用法 AM 图的名称 ={规模长(int),规模宽(int),是否为无向图,是为true,不是为false(bool)} 
 5 {
 6     private:
 7         int sn, sm;
 8         bool is_undirected_graph = true;//是否为无向图,是为true,不是为false
 9         bool arry[sn][sm];
10     public:
11         void AM(int input_n, int input_m,bool input_is_undirected_graph)//构造函数 input_n是规模长,input_m是规模宽,input_is_undirected_graph是 是否为无向图
12         {
13             this->sn = input_n; this->sm = input_m;//赋值
14             this->is_undirected_graph = input_is_undirected_graph;//赋值
15             return;//写不写都行
16         }
17         void ~AM(){}//析构函数,这里没什么用,写上更好
18         void link(int _A_, int _B_)//从_A_到_B_连边 
19         {
20             if (is_undirected_garph == true)//如果是无向图
21             {
22                 this->arry[_A_][_B_] = this->arry[_B_][_A_] = true;//双向边连上
23                 return;//写不写都行
24             }
25             else//如果不是
26             {
27                 this->arry[_A_][_B_] = true;//只连一个
28                 return;//写不写都行
29             }
30             return//写不写都行
31         }
32         bool unlink(int _A_, int _B_)//去掉_A_到_B_这条边,成功返回true,失败返回false
33         {
34             if (this->arry[_A_][_B_] == false)//如果没边 return false;
35             {
36                 return false;
37             }
38             if (is_undirected_garph == true)//如果是无向图
39             {
40                 this->arry[_A_][_B_] = this->arry[_B_][_A_] = false;//两边都删
41                 return true;//成功
42             }
43             else//如果不是
44             {
45                 this->arry[_A_][_B_] = false;//只删一边
46                 return true;//成功
47             }
48         }
49         boll ask(int _A_, int _B_)//_A_到_B_是否有边
50         {
51             return this->arry[_A_][_B_] == true ? true : false;
52             /*三目运算符,如果有边,返回true,没变返回false
53             * 格式为 a ? b : c
54             * 意为如果a成立那么表达式为b,如果a不成立,那么返回c
55             * 可以译作C++代码:
56             * if (a) //也可写作if (a==true)
57             * {
58             *    return b;
59             * }
60             * else
61             * {
62             *    return c;
63             * }
64             */
65         }
66 };    
© 版权声明
好牛新坐标 广告
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章