Logo

Programming-Idioms

History of Idiom 9 > diff from v47 to v48

Edit summary for version 48 by El Gallo:
[Go] Having a key type is an unusual special case optimization for large value types, not helpful for someone first learning

Version 47

2019-10-18, 14:19:14

Version 48

2020-08-16, 19:55:35

Idiom #9 Create a Binary Tree data structure

The structure must be recursive because left child and right child are binary trees too. A node has access to children nodes, but not to its parent.

Idiom #9 Create a Binary Tree data structure

The structure must be recursive because left child and right child are binary trees too. A node has access to children nodes, but not to its parent.

Variables
left,right
Code
type BinTree struct {
	Key keyType
	Deco valueType
	Left *BinTree
	Right *BinTree
}
Code
type BinTree struct {
	Value valueType
	Left *BinTree
	Right *BinTree
}
Comments bubble
keyType should be easily comparable.
valueType is a type of value associated with current node, distinct from the key.

Note that in Go you can call methods of pointer type *BinTree even on a nil receiver (an empty tree).
Comments bubble
valueType is a type of value associated with current node, distinct from the key.

Note that in Go you can call methods of pointer type *BinTree even on a nil receiver (an empty tree).
Demo URL
http://play.golang.org/p/MK3qoaVPol
Demo URL
http://play.golang.org/p/MK3qoaVPol