Arboles binarios ordenados pascal

A

Hola tengo que construir un arbol a paritr de una lista (la lista ya viene dada), y que dicho arbol almacene una lista, dado una persona tengo que guardar las compras que hizo. ejemplo la persona 1 compro huevos pan leche, la persona 2 compro carne y mermelada. la informacion esta desordenada, la persona 1 puede volver y comprar aceite.
EL arbol tiene quetener le codigo de persona y la lista de lo que compro. Mi problema en si es como insertar elementos a la lista del arbol, dejo el proceso mas abajo

type
cad=strign[30];

cliente = record
codigo: integer;
compra: cad;
end;


// Lista de compra de clientes
lista = nodoL;
nodoL = record
dato: cliente;
sig: lista;
end;

lista2=nodo2; //lista para los produtos comprados
nodo2=record
dato:cad;
sig:lista2;
end;

contenido=record //dato a guardar en el arbol
nrocliente:integer;
cod:lista2;
end;

arbol = nodoArbol;

nodoArbol = record
  dato: contenido;
  HI: arbol;
  HD: arbol;
end;      

procedure insertar ( var a:arbol; c:cliente;  var l2:lista2);

begin
if (a=nil) then
begin
new(a);
a.dato.nrocliente:=c.codigo;
a.dato.cod:=l2;
a.HI:=nil;
a.HD:=nil;
end
else
if (a.dato.nrocliente > c.codigo) then
insertar(a.HI,c,l2)
else
if (a.dato.nrocliente < c.codigo) then
insertar(a.HD,c,l2)
else
if ( a.dato.nrocliente = c.codigo) then
agregarAdelante2 (l2, c.cad) //proceso agregar a una lista
end;

L

¡Hola! Para construir un árbol que almacene información de las compras de varias personas, primero debemos entender cómo funciona un árbol y cómo podemos usarlo para almacenar información.

En términos generales, un árbol es una estructura de datos que consta de nodos y aristas. Cada nodo representa un objeto o entidad, y cada arista representa una relación entre los nodos. En un árbol, existe un nodo raíz que no tiene ningún padre, y todos los demás nodos están conectados a través de aristas a su padre.

Para almacenar la información de las compras de varias personas en un árbol, podemos considerar cada persona como un nodo en el árbol, y su lista de compras como un atributo de ese nodo. Si una persona compra algo nuevo, podemos agregar ese artículo a su lista de compras en su nodo correspondiente.

Una forma de implementar esto es crear un diccionario en Python donde las claves son los códigos de persona y los valores son las listas de compras. Podemos recorrer la lista de compras dada y agregar cada artículo a la lista correspondiente en el diccionario.

Luego, podemos construir un árbol a partir de este diccionario, donde cada clave del diccionario se convierte en un nodo en el árbol, y cada valor de la lista del diccionario se convierte en un atributo del nodo correspondiente.

Aquí hay un ejemplo de cómo podemos implementar esto en Python:

# lista de compras
compras = [
    ('persona1', ['huevos', 'pan', 'leche']),
    ('persona2', ['carne', 'mermelada']),
    ('persona1', ['aceite'])
]

# diccionario de compras
compras_dict = {}
for persona, lista_compras in compras:
    if persona in compras_dict:
        compras_dict[persona].extend(lista_compras)
    else:
        compras_dict[persona] = lista_compras

# construir el árbol
class Nodo:
    def __init__(self, codigo, compras=None):
        self.codigo = codigo
        self.compras = compras
        self.hijos = []

def agregar_hijo(self, nodo):
    self.hijos.append(nodo)

def construir_arbol(compras_dict):
    raiz = Nodo('raiz')
    for persona, lista_compras in compras_dict.items():
        nodo_persona = Nodo(persona, lista_compras)
        raiz.agregar_hijo(nodo_persona)
    return raiz

arbol_compras = construir_arbol(compras_dict)

En este ejemplo, primero creamos una lista de compras que contiene tuplas de la forma (persona, lista_compras), donde persona es el código de persona y lista_compras es una lista de los artículos que compró esa persona.

Luego, construimos un diccionario compras_dict a partir de la lista de compras, donde las claves son los códigos de persona y los valores son las listas de compras correspondientes. Si una persona ya tiene una lista de compras en el diccionario, agregamos los nuevos artículos a su lista existente utilizando el método extend(); de lo contrario, creamos una nueva entrada en el diccionario para esa persona.

Después, construimos el árbol utilizando la clase Nodo. Cada nodo tiene un código de persona y una lista de compras

tofreak

Ni idea de que preguntas pero aun habiéndote respondido ya una persona, te recomiendo que uses chatgpt y no es broma.

PiradoIV

Esa persona ya ha usado ChatGPT.

5
21 días después
Mewtwo

En que universidad estas estudiando estructura de datos ?

Usuarios habituales