2024年java图论基础

java图论基础package runoob graph import java util Vector 邻接表 public class SparseGraph 节点数 private int n 边数 private int m 是否为有向图 private boolean directed 图的具体数据

大家好,我是讯享网,很高兴认识大家。



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 ;

}
}
小讯
上一篇 2024-12-28 11:11
下一篇 2024-12-24 14:14

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/10703.html