# 图（有向图、无向图）

1 ．图的定义

1.3-1

V ＝｛ v 1 v 2 v 3 v 4

E ＝｛（ v 1 v 2），（ v 1 v 3），（ v 2 v 3），（ v 2 v 4），（ v 3 v 4）｝

V ＝｛ v 1 v 2 v 3 v 4

E ＝｛ <v 1 v 2 > <v 1 v 3 > <v 1 v 4 > <v 2 v 1 > <v 4 v 2 >}

2 ．图的常用术语

1.3-2

1. 　邻接矩阵存储

const  graph1:array[1..4,1..4] ofinteger=((0,1,1,0),(1,0,1,1),(1,1,0,1),(0,1,1,0));

graph2:array[1..4,1..4] ofinteger=((0,1,1,1),(1,0,0,0),(0,0,0,0),(0,1,0,0));

const  graph3:array[1..4,1..4] ofinteger=((0,3,4,0),(3,0,9,2),(4,9,0,6),(0,2,6,0));

var vi,vj,vn,ei,en,wn:integer;

graph:array[1..20,1..20]of integer;

Begin

forvi:=1 to vn do

for vj:=1 to vn do

graph[vi,vj]:=0;

forei:=1 to en do

begin

graph[vi,vj]:=wn;

graph[vj,vi]:=wn

end;

forvi:=1 to vn do

begin

for vj:=1 to vn dowrite(graph[vi,vj]:8);  { 输出图

writeln

end

End.

2. 　邻接表存储

1. 　深度优先遍历

连通图的深度优先遍历的算法描述如下：（如果不是连通图则需多次使用遍历算法）

proceduredfs(vi:integer);

begin

write(graph[vi].v:4);  ｛输出顶点数值｝

visited[vi]:=true;      { 设置已访问标记

while last<>nil do

begin

last:=last^.next

end

end;

2. 　广度优先遍历

1 ．一笔画问题

1.3-5

programstroke(input,output);

vargraph:array[1..20,1..20] of 0..1;

degree:array[1..20] of integer;

odd_num,vn,vi,vj,start,total_d:integer;

begin

odd_num:=0;total_d:=0;start:=1;

write('please input the number of vertex:');

for vi:=1 to vn do

begin

degree[vi]:=0;

for vj:=1 to vn do

begin

degree[vi]:=degree[vi]+graph[vi,vj] ｛求每个顶点的度数｝

end;

total_d:=total_d+degree[vi]; 　｛求总的度数｝

if odd(degree[vi]) then

begin

odd_num:=odd_num+1; ｛统计奇数顶点的个数｝

start:=vi　　｛确认从奇数顶点出发｝

end

end;

if odd_num>2 then writeln('no solution') ｛奇数顶点超过两个显示无解｝

else

begin

vi:=0;

while total_d>2 do

begin

repeat vi:=vi+1 until graph[start,vi]<>0; ｛找连接的相邻点｝

if degree[vi]>1 then 　｛先画度数大于 1的顶点｝

begin

write('->',vi);

graph[start,vi]:=0;

graph[vi,start]:=0;

degree[vi]:=degree[vi]-1;

degree[start]:=degree[start]-1;

total_d:=total_d-2;

start:=vi;

vi:=0

end

end;

repeat vi:=vi+1 until graph[start,vi]<>0; 　｛确认最后一笔｝

writeln('->',vi)

end

end.

please input the number of vertex:6

0 1 1 0 0 0

1 0 1 1 0 1

1 1 0 0 1 1

0 1 0 0 1 1

0 0 1 1 0 1

0 1 1 1 1 0

• 本文已收录于以下专栏：

## 有向图，无向图，连通图，完全图

• M87138
• 2014年10月11日 22:00
• 5887

## 有向图与无向图判断有环

• turingwy
• 2015年11月17日 12:38
• 7331

## PGM——从有向图到无向图的转化（moralization）

• light_lj
• 2014年09月17日 10:15
• 2992

## 有向图和无向图用邻接矩阵储存

• smarter_shability
• 2017年04月08日 09:15
• 4021

## 有向图、有向网、无向图、无向网

#include #include #include #include #define MAX_NAME 5//顶点字符串的最大长度+1 #define MAX_INFO 20//相关信息字符串的最...
• CreazyApple
• 2012年09月06日 09:02
• 7270

## 图的遍历（有向图和无向图）

• 2011年12月09日 09:08
• 256KB
• 下载

## POJ - 1515 Street Directions(无向图变有向图)

• L123012013048
• 2015年08月16日 00:31
• 693

## 有向图遍历

• 2013年10月23日 00:34
• 3KB
• 下载

## 十六、图算法之有向图

• guanhang89
• 2016年04月18日 00:07
• 4877

## 图（2）——有向图

• qq_21916897
• 2017年05月20日 22:13
• 162

举报原因： 您举报文章：图（有向图、无向图） 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)