当前位置:网站首页 > Java基础 > 正文

java图论基础



package runoob.graph ;

import java.util.Vector ;

/
* 邻接表
*/

public class

SparseGraph

{

// 节点数

private int

n

;

// 边数

private int

m

;

// 是否为有向图

private boolean

directed

;

// 图的具体数据

private

Vector

<

Integer

> [ ]

g

;

// 构造函数

public

SparseGraph

( int

n ,

boolean

directed

) {

assert

n

>= 0 ;

this

.

n =

n

;

this

.

m = 0 ;


this

. java图论基础

directed =

directed

;

// g初始化为n个空的vector, 表示每一个g[i]都为空, 即没有任和边

g

= (

Vector

<

Integer

> [ ] ) new Vector [

n

] ;

for ( int

i

= 0 ;

i

<

n

;

i

++ )

g

[

i

] = new

Vector

<

Integer

> ( ) ;

}

// 返回节点个数

public int

V

( ) { return

n

; }

// 返回边的个数

public int

E

( ) { return

m

; }

// 向图中添加一个边

public void

addEdge

( int

v,

int

w

) {

assert

v

>= 0 &&

v

<

n

;

assert

w

>= 0 &&

w

<

n

;

g

[

v

]

.

add (

w

) ;

if (

v

!=

w

&& !

directed

)

g

[

w

]

.

add (

v

) ;

m

++;

}

// 验证图中是否有从v到w的边

boolean

hasEdge

( int

v ,

int

w

) {

assert

v

>= 0 &&

v

<

n

;

assert

w

>= 0 &&

w

<

n

;

for ( int

i

= 0 ;

i

<

g

[

v

]

.

size ( ) ;

i

++ )

if (

g

[

v

]

.

elementAt (

i

) ==

w

)

return true ;

return false ;

}
}

  • 上一篇: java基础递归代码
  • 下一篇: java基础30问
  • 版权声明


    相关文章:

  • java基础递归代码2025-04-24 23:02:01
  • java基础代码查询2025-04-24 23:02:01
  • java基础入门试卷2025-04-24 23:02:01
  • java基础设施2025-04-24 23:02:01
  • java基础学完了2025-04-24 23:02:01
  • java基础30问2025-04-24 23:02:01
  • 黑马教育java基础2025-04-24 23:02:01
  • java加载器零基础2025-04-24 23:02:01
  • 马士斌java基础视频2025-04-24 23:02:01
  • java基础入门学习班2025-04-24 23:02:01