func (g *Graph) MarkPath(p *Path) {
	nodes := p.nodes
	len := len(nodes)
	p.types = make([]byte, len)
	p.types[0] = 'e'
	p.types[len-1] = 'e'
	last := g.from[nodes[0]][nodes[1]]
	for i := 1; i < len-1; i++ {
		current := g.from[nodes[i]][nodes[i+1]]
		if last && !current {  
			p.types[i] = 'c'
		} else if !last && current {  
			p.types[i] = 'f'
		} else {
			p.types[i] = 'h'
		}
		last = current
	}
}
MarkPath mark the path with e,c,f,h
package graph
import ()