当前位置:网站首页 > 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

.

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中级菜鸟教程
  • 下一篇: java8 lambda教程
  • 版权声明


    相关文章:

  • java中级菜鸟教程2025-01-09 13:26:02
  • java微信二次开发视频教程2025-01-09 13:26:02
  • java指定日期教程2025-01-09 13:26:02
  • java卡教程视频2025-01-09 13:26:02
  • java引用对象教程2025-01-09 13:26:02
  • java8 lambda教程2025-01-09 13:26:02
  • java163教程2025-01-09 13:26:02
  • java教程4832025-01-09 13:26:02
  • java视频教程国外2025-01-09 13:26:02
  • 最新java安装教程2025-01-09 13:26:02