Binary tree is a specialization of Graph data structure. Node in a Graph is called a **Vertex** and the connection between two vertices is called an **Edge**.

If we use this terminology, A Binary tree edge is only from a parent to its (at the most two) children. In Graph, any vertex (Node) can connect to any vertex and there is no limit on the number of vertices that a vertex can connect to. The connection can be uni-directional (as in Binary trees) or bi-directional. When connections are uni-directional the edge is called **directed edge** and graph is called **directed graph**. When connections are bi-directional, edge is called **un-directed edge** and graph is called **undirected graph**. Because of these connections, there is no hierarchy among the vertices of a Graph. Continue reading »