Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Exactly one path between any two nodes is how I best visualize it.


A forest is where all nodes are connected by at most one path. 0 or 1. And a single tree is a forest. And a single node is a tree.


You gotta be careful -- a path does not exist between two leaf nodes, unless your edges are non-directional, in which case you're right. Oh and restrict it to 'only visit each node once' given undirected.

Sorry my inner edge case fairy beckoned.


Visiting a node twice implies a loop, which implies two paths between your original nodes.

Let’s say we want to get from A to B, but we visit Y twice. That means there’s a segment of A~B that is Y~Y (a loop). However, since we’re talking about undirected edges, we can reverse that segment. Then both our original A~B and the A~B with Y~Y reversed are paths from A to B.

So if there’s a single path from A to B, there cannot be a Y we visit twice along that path.

(Please don’t take this as criticism; my pedantic nature got the better of me.)


Yes, but in an UndirectedGraph you can do loops easy peasy. A->b->a->b etc. if you have a tree with a parent node, then the tree (A{children:[b], parent: null}, B{children:[], parent: A}) still may allow for this behavior (graph representation unions parent and children since a parent in tree parlence is basically 'incoming-edges' in graph parlence while children is 'outgoing-edges')

I was trying to find terminology for something Like 'all possible paths between these two nodes contain exactly one Hamiltonian sub-path' but I think that's a bit of a circular definition

All that said I'm running off 3 hours of sleep and about to recoup so that probably explains my non constructive comments here




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: