创始人
2024-02-19 08:35:33
0

图的一些性质:

1.无向图只有度,有向图包括出度和入度。

2.完全图:若无向图中每两个顶点之间都存在着一条边,有向图中每两个顶点之间都存在着方向相反的两条边,则此图称为完全图。

3.无向完全图包含n(n-1)/2条边,有向完全图包含n(n-1)条边。

4.n个顶点无向连通图至少有n-1条边,反之不成立。

5.无向连通图若边数大于n-1则必存在回路。

6.稠密图与稀疏图:当一个图接近完全图时称为稠密图,当一个图含有较少边数(e

7.强连通图个点之间均可达(有向图)。


一、邻接矩阵存储图及遍历

结构体数组实现方式

1.初始化结构体与数组

typedef struct
{int idx;     //idx存储内容为symbol的数组在Node中的下标char symbol;   //symbol存储该节点的内容
}Node;
int edge[MaxSize][MaxSize] = { 0 };   //edge存储点与点之间是否存在边,若存在边即为1,不存在则为0(邻接矩阵)
Node node[300];

2.给定一串字符,以及字符之间的连接状况,建立邻接矩阵。 

void CreateAM(string a)
{//a为给定字符串for (int i = 0; i < a.size(); i++){node[a[i]].idx = i; //标记a[i]在node数组中的下标node[i].symbol = a[i]; }char x, y;cout << "请输入连接个数:" << endl;int m;cin >> m;cout << "请输入各连接:" << endl;for (int i = 0; i < m; i++){cin >> x >> y;edge[node[x].idx][node[y].idx] = 1;edge[node[y].idx][node[x].idx] = 1;//x,y为给定的字符之间的连接状况,无向图,正反连接}
}

3.深度优先遍历

int st[MaxSize] = { 0 };//st[i]数组表示i是否被访问过,若未被访问过则为0,反之为1。
void dfs(char c,Node a[],int n)//从字符c开始深度优先遍历图
{//n 代表图的节点数,a[]代表存储的节点cout << c << " ";//输出cint idx = a[c].idx;  //idx标记c在a数组中的下标st[idx] = 1;         //将此节点的st值置为1代表此节点被访问过for (int i = 0; i < n; i++){if (edge[idx][i] == 1 && st[i] == 0)//判断该点与其他节点是否有链接,若有链接且被连接的点未被访问过则遍历该点{st[i] = 1;              //标记该点dfs(a[i].symbol, a, n);}}
}

4.宽度优先遍历

void bfs(char c, Node a[], int n)
{//st数组在bfs中的作用是保证每个元素只能加入队列一次,防止了元素的重复访问。int front = -1;int rear = -1;int q[MaxSize];//建立一个队列存储遍历顺序q[++rear] = a[c].idx;st[a[c].idx] = 1;         //st标记该节点代表已经被加入队列while (front != rear)//队列不为空就继续遍历{int node = q[++front];//从队列中取出头节点cout << a[node].symbol << " ";for (int i = 0; i < n; i++){if (edge[node][i] == 1 && st[i] == 0){q[++rear] = i;st[i] = 1;   //加入队列后立即将其st置为1}}}
}

 map存储实现方式

1.初始化

mapnode;       //char int类型键值对,存储char元素对应的下标
string a;                 //输入的节点字符串
int edge[MaxSize][MaxSize] = { 0 }; //点与点之间的是否有边

2.建立邻接矩阵 

cin >> a;            //输入节点字符串for (int i = 0; i < a.size(); i++){node[a[i]] = i;  //标记字符a[i]在邻接矩阵中的下标}int m; cin >> m;            //输入边的个数for (int i = 0; i < m; i++)//建立邻接矩阵{char x, y;cin >> x >> y;int xi = node[x];int yi = node[y];edge[xi][yi] = 1;edge[yi][xi] = 1;}

3.深度优先遍历

bool st[MaxSize] = { false };
void dfs(char c)
{cout << c;char idx = node[c];st[idx] = true;for (int i = 0; i < a.size(); i++){if (edge[idx][node[a[i]]] == 1 && st[node[a[i]]] == false){dfs(a[i]);}}
}

4.宽度优先遍历

char find(int x)     //find函数用于查找下标为x的点对应的char字符
{for (int i = 0; i < a.size(); i++){if (node[a[i]] == x){return a[i];}}
}
void bfs(char c)
{int rear = -1;int front = -1;int q[MaxSize] = { 0 };q[++rear] = node[c];st[node[c]] = true;while (rear != front){int idx = q[++front];cout << node[find(idx)];for (int i = 0; i < a.size(); i++){if (edge[idx][i] == 1 && st[i] == false){q[++rear] = i;st[i] = true;}}}
}

相关内容

热门资讯

将虾苗卖到“小龙虾之乡” □四川日报全媒体记者 陈丽霏  5月,鲜活肥美的小龙虾大量上市,中江县黄鹿镇也迎来了一年中最繁忙的时...
建圈强链 四川农业明确产业“路... 5月11日,四川省大邑县现代农业(粮食产业)园区,工人在试验田中开展小麦新品的测产工作。 李旭 摄(...
AI技术为品牌舆情处置带来新变...   张志恒 王鑫 济南报道  危机管理专家、新传媒网危机管理首席顾问叶东,围绕品牌舆情管理的核心理念...
341名中小学生将获益 本报讯 近日,德阳市2025年春季学期中小学特困学生“零费用入学”项目拟资助学生名单公示结束,341...
我省农业科学家发明“冷链保鲜全... □ 本报记者 张 宣 买菜时最怕遇到叶子发黄、蔫巴巴的蔬菜?现在,我省科学家研发的保鲜“神器”...
向家坝灌区一期一步工程首次大规...   眼下正值我省春灌用水高峰期。近日,在向家坝灌区一期一步工程内江供水管道出水口,清澈的金沙江水顺着...
成都11家平台拟入选 本报讯(四川日报全媒体记者 薛维睿)近日,工业和信息化部公示了首批重点培育中试平台初步名单,成都11...
深耕“三农”金融 奏响乡村振兴... 泰兴农商银行作为当地“营业网点最多、政银融合最深、综合贡献最大”的地方法人银行,始终以服务“三农”、...
中国人民抗日战争暨世界反法西斯... (新华社发) 新华社北京5月13日电 国务院新闻办公室今天公开发布中国人民抗日战争暨世界反...
硅碳负极新材料项目在内江投产 本报讯(四川日报全媒体记者 陈宇)5月13日,内江埃普诺硅碳负极新材料项目在内江经开区投产。当天点火...
这份特殊答卷,应该得到满分   评论员 张琪 郝东智  “考试可以重来,但人的生命只有一次,我不后悔!”车上急救挽回同学生命后,...
构建物流运输“云端川廊” 四川... 汶川县萝卜寨海拔较高,交通不便,通过无人机吊装运输方式可大大提高车厘子运输效率,减少损耗。无人机拍摄...
公开通报李献林、叶金广等人违规...   新华社北京5月13日电 日前,中央层面深入贯彻中央八项规定精神学习教育工作专班、中央纪委办公厅公...
外盘头条:美国撤销拜登时代AI...   全球财经媒体昨夜今晨共同关注的头条新闻主要有:  1、美国商务部撤销拜登时代AI扩散规定   ...
全年要实现306 个优良天 □四川日报全媒体记者 吴亚飞污染防治目标  大气污染防治:全年空气质量优良天数达到306天、PM2....
景顺长城中证港股通科技ETF联... 景顺长城中证港股通科技交易型开放式指数证券投资基金发起式联接基金(简称:景顺长城中证港股通科技ETF...
离岸人民币兑美元较周一纽约尾盘... 转自:财联社【离岸人民币兑美元较周一纽约尾盘涨15点】财联社5月14日电,离岸人民币(CNH)兑美元...
CBA总决赛北汽队继续拼争 图为北京北汽男篮主教练许利民。本报记者 刘平摄  本报记者 陈嘉堃  与第三场比赛间隔一天,2024...
希望与中方携手发出更强南方声音   巴西总统卢拉日前在接受中国驻巴西媒体集体采访时表示,巴方希望利用中拉论坛、金砖国家合作机制、《联...
华安大安全混合A净值下跌3.0... 华安大安全主题灵活配置混合型证券投资基金(简称:华安大安全混合A,代码002181)公布5月13日最...