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}