Skip to content

Class: Graph

图对象,这里的图默认是:有向、连通图

js
// 代码示例:
// node&link对象集合
let objects = layer.children;

// 转成图对象(0-多个)
let graphArr = stage.graphSystem.objectsToGraphs(objects);

let graph = graphArr[0];
console.log(graph.isTree());

// 顶点集合
let vertexes = graph.vertexes;
console.log('第一个顶点的出度为:', graph.vertexes[0].getOutDegree());

// 边集合
let edges = graph.edges;
// ...

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new Graph(vertexes, edges)

生成0-n棵虚拟树( 提出去放到system)

Parameters

NameType
vertexesVertext[]
edgesEdge[]

Properties

edges

edges: Edge[]


hasDirection

hasDirection: boolean = true

有向图还是无向图


vertexes

vertexes: Vertext[]

顶点

Methods

check

check(): void

Returns

void


clone

clone(): Graph

Returns

Graph


getMaxDegreeVertext

getMaxDegreeVertext(): Vertext

获取最大度顶点

Returns

Vertext


getMinDegree

getMinDegree(): number

获取最小度

Returns

number


getOrder

getOrder(): number

阶(Order):图G中点集V的大小称作图G的阶。

Returns

number


getPathList

getPathList(u, v, history?): Path[]

Parameters

NameType
uVertext
vVertext
historySet<unknown>

Returns

Path[]


isAlone

isAlone(): boolean

是否平凡图(仅有一个节点,无边)

Returns

boolean


isBridge

isBridge(): void

目前版本暂未实现 桥(Bridge):若去掉一条边,便会使得整个图不连通,该边称为桥。

Returns

void


isSubGraph

isSubGraph(g): void

目前版本暂未实现

判断给定图是否当前图的子图。

子图(Sub-Graph):当图G'=(V',E')其中V‘包含于V,E’包含于E,则G'称作图G=(V,E)的子图。每个图都是本身的子图。

Parameters

NameType
gGraph

Returns

void


isTree

isTree(): boolean

是不是一棵树 图是树需要满足三个条件:

  1. 图中结点均连通,即结点属于同一个集合;
  2. 没有回路
  3. 是无向的

Returns

boolean


isZero

isZero(): boolean

是否零图(有节点,无边)

Returns

boolean


travelNext

travelNext(rootVetext): any[]

严格按照方向->从指定节点遍历所有顶点

  1. 广度优先
  2. 到头或者再次遇到自己结束

Parameters

NameType
rootVetextVertext

Returns

any[]


traverse

traverse(begin?, type?, rs?, history?): any[]

遍历整个图所有节点和边, 深度优先

Parameters

NameTypeDefault value
begin?Vertextundefined
type"depth" | "breadth"'depth'
rsany[][]
historySet<unknown>undefined

Returns

any[]