设为首页收藏本站|繁體中文 快速切换版块

 找回密码
 立即加入
搜索
查看: 1252|回复: 2

图的遍历程序——C写的

[复制链接]

该用户从未签到

尚未签到

发表于 2009-4-25 17:07:12 | 显示全部楼层 |阅读模式
文档文案
文档文件名称: 图的遍历程序——C写的
内容简介: 图的遍历程序——C写的
所属专业方向: 电力系统
文件类型: .doc
来源:

马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!

您需要 登录 才可以下载或查看,没有账号?立即加入

×
图的遍历程序——C写的$ T; i* V; E. X( g3 C
用于配网潮流计算的

图的遍历.rar

5.58 KB, 下载次数: 14, 下载积分: 威望 -2 点, 学分 -5 点

"真诚赞赏,手留余香"
还没有人打赏,支持一下
楼主热帖
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

该用户从未签到

尚未签到

发表于 2009-4-25 22:23:50 | 显示全部楼层
学习了.谢谢
* o( j& `% G  i$ m9 s/*全局变量:访问标志数组*/6 ?( v8 ]; {' |9 \; \- t7 H8 s
int visited[M];/ p& z3 z& v9 n" j+ X( M6 e$ G! v: E
/*访问顶点*/, L2 |/ ]3 ]# U2 L8 b& \- o$ e: J2 E
void visitvex(Graph *g,int vex)$ B3 G- |$ J6 R
{' i( X7 L6 [! t  \+ H
printf("%d ",g->V[vex]);
/ o7 K# V" `$ R. a- R}
8 }  I; E% l8 ^
2 l) c8 V9 D% s: l/*获取第一个未被访问的邻接节点*/
9 I: I6 t! P0 z! k" F& Cint firstadjvex(Graph *g,int vex)) R4 N; \) f6 z0 p: `: w
{  v, k- u4 L3 v6 s5 c5 j
int w,i;! M0 J$ M5 W6 V1 I
for(i=1;i<=g->vexnum;i++)
! u3 }7 V5 ^2 L) Z4 K  {# j, y5 H* _/ y
   if(g->R[vex][i]==1&&visited[i]==0)
$ |5 _8 T" L; @* @  t    {
5 ?- Y4 J- Z- H7 \/ `      w=i;
. q$ f2 I7 _2 W0 h      break;& ?+ g' n. [3 I; _0 E+ `
    }
/ n  g/ |: A$ r6 _& G5 e   else% T# V" s( H" Q7 F
    {
$ Q& a9 x( w$ r2 r- n      w=0;' W9 e2 ]; o, j- t
    }
  R6 D* d0 C5 {; g  }
  A( t, ]# w7 C  return w;8 i  M* w* s8 t* K$ T1 d7 H# C
}
  j' I9 }. P+ Q- [) q' h/*获取下一个未被访问的邻接节点(深度遍历)*/4 Z7 R! g: U, J2 e1 Q2 X1 ]( H
int nextadjvex(Graph *g,int vex,int w)) l- X- ^% P! ^  O4 G, x, X
{
( t9 ]" J: w& t) v  int t;
- g* w( j2 {) I) h  t=firstadjvex(g,w);0 M+ d$ P; h8 M. \7 E+ v& `1 l9 E% N2 H+ d
  return t;0 H+ w) [- V7 N# `5 h
}# T! j1 f  O) K% F$ j
/*深度递归遍历*/
0 r, C0 ~6 j( y0 Q  void dfs(Graph *g,int vex)/ g) G3 l4 e' S2 H; N) d. R4 A6 b
   {
; r2 P# m5 h2 \! P2 D    int w;. [/ Z6 W# S4 K2 R6 F* f' J
    visited[vex]=1;
* {6 Q+ {. S4 u& ^1 ^* q    visitvex(g,vex);; ^6 F9 @' F# l; T" n" s
    for(w=firstadjvex(g,vex);w>0;w=nextadjvex(g,vex,w))
  W8 @" Z6 L2 g      if(!visited[w])
- |( N7 K2 |1 \/ f       {
" ]  ~7 A; E2 r# \& ~dfs(g,w);
& V# S! T, j, S+ T! f% E; f       }
; [( N7 I7 c: |0 X2 x   }9 c1 D5 @! p" `3 M1 l7 h: ^

4 V$ k) i/ l( t   void dfstraverse(Graph *g)
3 O  T  Q, q# `( s) A$ Z   {  P8 e4 ?* N% j+ o0 r  G/ C
     int i;
& j) E% H, n7 j$ g( [* R! F     for(i=1;i<=g->vexnum;i++)- ~9 s" z# n# X' F
       visited[i]=0;
2 _4 \* V, j2 }( ^4 x( c     for(i=1;i<=g->vexnum;i++)! [$ {' A4 e- k
       if(!visited[i])3 F4 X) T( B- s5 O; H) m
  {dfs(g,i);}
( ~) d4 I# a" O/ M   }
"真诚赞赏,手留余香"
还没有人打赏,支持一下
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

该用户从未签到

尚未签到

发表于 2009-4-26 22:13:11 | 显示全部楼层
谢谢楼主, 我想问下您对怎么学习电力系统编程有什么意见吗? 这方面的资料好像很少
"真诚赞赏,手留余香"
还没有人打赏,支持一下
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

招聘斑竹

小黑屋|手机版|APP下载(beta)|Archiver|电力研学网 ( 赣ICP备12000811号-1|赣公网安备36040302000210号 )|网站地图

GMT+8, 2026-3-16 12:08

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表