Graphs and Tress Representation
class Node:
def __init__(self, value):
self.val = value
self.left = None
self.right = None
type Node struct {
Val int
Left *Node
Right *Node
}
func GetNode(val int) *Node {
var node *Node
node = new(Node)
node.Val = val
node.Left = nil
node.Right = nil
return node
}
i
has children at 2i+1
and 2i+2
tree = [10,20,30,40,50,60]
tree := []int{10,20,30,40,50,60}
tree = {
'A': ['B','C']
'B': ['D','E']
'C': ['F']
}
tree = map[rune][]rune{
'A': {'B','C'}
'B': {'D','E'}
'C': {'F'}
}
tree = {
'A': {'B','C'},
'B': {'D'},
'C': {}
}
tree map[rune]map[rune]interface{}{
'A': {'B': struct{}{},'C':struct{}{}},
'B': {'D':struct{}{}},
'C': {}
}
graph = {
'A':['B','C'],
'B':['A','D'],
'C':['A','D'],
'D':['B','C']
}
graph := map[rune][]rune{
'A':{'B','C'},
'B':{'A','D'},
'C':{'A','D'},
'D':{'B','C'},
}
graph = {
'A': {'B','C'},
'B': {'A','D'},
'C': {'A'}
'D': {'B'}
}
graph map[rune]map[rune]interface{}{
'A': {'B': struct{}{},'C':struct{}{}},
'B': {'A': struct{}{},'D':struct{}{}},
'C': {'A':struct{}{}},
'D': {'B':struct{}{}},
}
matrix[i][j] = 1
(or weight) means edge from i
to j
.matrix = [
[0,1,1,0],
[1,0,0,1],
[1,0,0,1],
[0,1,1,0]
]
matrix = [][]int{
{0,1,1,0},
{1,0,0,1},
{1,0,0,1},
{0,1,1,0}
}
edges = [
('A','B'),
('A','C'),
('B','D'),
('C','D'),
]
edges := [][]rune{
{'A','B'},
{'A','C'},
{'B','D'},
{'C','D'},
}
graph = {
'A': {'B': 3, 'C': 1},
'B': {'C': 7},
'C': {}
}
graph := map[rune]map[rune]interface{}{
'A': {'B': struct{}{},'C':struct{}{}},
'B': {'A': struct{}{},'D':struct{}{}},
'C': {'A':struct{}{}},
}