Python - juntar árboles anytree

 
Vista:

juntar árboles anytree

Publicado por ainoa (2 intervenciones) el 05/12/2018 19:30:29
necesito ayuda, soy principiante de python y estoy realizando un programa compresor de palabras tipo huffman pero no consigo avanzar

he creado distintos árboles, mediante el anytree, cada vez q reconoce las probabilidades más pequeñas. Pero mi objetivo es juntarlos todos para luego recorrerlo.

hay algún comando para juntar los nodos iguales??

gracias:)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

juntar árboles anytree

Publicado por tincopasan (1082 intervenciones) el 06/12/2018 07:09:38
la verdad nunca use anytree pero hace años para ver huffman usabamos este código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#-*- coding: utf -8 -*-
from heapq import heapify, heappush, heappop
from itertools import count
 
def huffman(seq, frq):
    num = count()
    trees = list(zip(frq, num, seq)) # num es para asegurar un orden válido}
    heapify(trees) # un mínimo basado en la frecuencia 
    while len(trees) > 1: # hasta que todos se combinen
        fa, _, a = heappop(trees) #conseguir dos arboles mas pequeños
        fb, _, b = heappop(trees)
        n = next(num)
        heappush(trees, (fa+fb, n, [a, b])) # combina y agrega
    return trees[0][-1]
 
seq = "abcdefghi"
frq = [4,5, 6, 9, 11, 12, 15, 16, 20]
 
print(huffman(seq, frq))


No lo he vuelto a mirar porque por mi actividad no lo utilizo ni por casualidad. Perdón porque no es lo que preguntas pero quizá te oriente de otra forma.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar