arnaucube
arnaucube/huffman-codingPublic Self-hosted repository
huffman-coding/utils.go
utils.goRaw
 1package huffman
 2
 3import (
 4	"fmt"
 5	"io"
 6)
 7
 8func printNode(w io.Writer, n *Node) {
 9	if n.typ == MID {
10		fmt.Fprintf(w, "\"%v\" -> {\"%v\" \"%v\"}\n", n.String(), n.l.String(), n.r.String())
11		printNode(w, n.l)
12		printNode(w, n.r)
13	} else if n.typ == LEAF {
14		fmt.Fprintf(w, "\"%v\" [style=filled];\n", n.String())
15	}
16}
17func printTree(w io.Writer, n *Node) {
18	fmt.Fprintf(w, `digraph hierarchy {
19		node [fontname=Monospace,fontsize=10,shape=box]
20		`)
21
22	printNode(w, n)
23	fmt.Fprintf(w, "}\n")
24}