is_tree: Decide whether a graph is a tree.

View source: R/trees.R

is_treeR Documentation

Decide whether a graph is a tree.

Description

is_tree() decides whether a graph is a tree, and optionally returns a possible root vertex if the graph is a tree.

Usage

is_tree(graph, mode = c("out", "in", "all", "total"), details = FALSE)

Arguments

graph

An igraph graph object

mode

Whether to consider edge directions in a directed graph. ‘all’ ignores edge directions; ‘out’ requires edges to be oriented outwards from the root, ‘in’ requires edges to be oriented towards the root.

details

Whether to return only whether the graph is a tree (FALSE) or also a possible root (TRUE)

Details

An undirected graph is a tree if it is connected and has no cycles. In the directed case, a possible additional requirement is that all edges are oriented away from a root (out-tree or arborescence) or all edges are oriented towards a root (in-tree or anti-arborescence). This test can be controlled using the mode parameter.

By convention, the null graph (i.e. the graph with no vertices) is considered not to be a tree.

Value

When details is FALSE, a logical value that indicates whether the graph is a tree. When details is TRUE, a named list with two entries:

res

Logical value that indicates whether the graph is a tree.

root

The root vertex of the tree; undefined if the graph is not a tree.

Related documentation in the C library

igraph_is_tree().

See Also

Other trees: is_forest(), make_from_prufer(), sample_spanning_tree(), to_prufer()

Examples


g <- make_tree(7, 2)
is_tree(g)
is_tree(g, details = TRUE)


igraph documentation built on Oct. 20, 2024, 1:06 a.m.