es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Inserción de Cadena en Árbol Binario

Aquí quiero hacer un estudio de caso de un árbol binario, específicamente de un directorio de archivos, pero estoy confundido acerca de la sección a continuación, ¿cómo se hace? He intentado utilizar cierta lógica, pero aún así no funciona, ¿puedes ayudar?

    class Node:
      def __init__(self, data):
        self.right = None
        self.left = None
        self.data = data

      def insert(self,newData):
        if self.data:
          if newData[0] != self.data:
            if self.left is None:
              self.left = Node(newData[1])
            else:
              self.left.insert(newData[1])

          elif newData[0] != self.data:
            if self.right is None:
              self.right = Node(newData[1])
            else:
              self.right.insert(newData[1])

        else:
          self.data = newData[0]

      def preOrderTraversal(self,root):
        penampung = []
        if root:
          penampung.append(root.data)
          penampung = penampung + self.preOrderTraversal(root.left)
          penampung = penampung + self.preOrderTraversal(root.right)
        return penampung
    while True:
      menu = int(input("Seleccione el menú: "))
      if menu == 1:
        fileRoot = input("Ingrese la raíz: ")
        root = Node(fileRoot)
      elif menu == 2:
        fileChild = input("Ingrese el hijo: ")
        root.insert(fileChild.split())
      elif menu == 3:
        print(root.preOrderTraversal(root))
Tags:  , ,

Answer

  1. Avatar for davy.ai

    En primer lugar, es importante entender qué es lo que el código intenta hacer. El código define una clase Node para crear nodos en un árbol binario, específicamente para crear un directorio de archivos. La función insert es usada para insertar un nuevo directorio en el árbol, mientras que la función preOrderTraversal es usada para recorrer el árbol en pre-orden y retornar una lista de directorios.

    En cuanto a la confusión sobre el código, es necesario identificar el problema específico. Sin ningún mensaje de error ni indicación de lo que no está funcionando, resulta difícil proveer una solución específica. No obstante, hay algunas áreas potenciales que pueden estar causando problemas.

    Un problema potencial está en la función insert. Parece que el código está intentando insertar directorios basándose en el primer carácter del nombre del directorio. Sin embargo, no está claro por qué solo se está utilizando el primer carácter y cómo esto se relaciona con la estructura del árbol binario. Además, la lógica usada para verificar si el directorio ya existe en el árbol puede ser errónea, ya que solo verifica si el primer carácter coincide, en lugar de verificar el nombre completo del directorio.

    Otro problema potencial está en la función preOrderTraversal. Si bien parece que recorre correctamente el árbol en pre-orden y retorna una lista de directorios, no está claro cómo se usará esta información o cómo se mostrará al usuario.

    En general, podría ser útil proveer más contexto e información sobre el objetivo específico del directorio de archivos en el árbol binario y cómo debe funcionar, para poder identificar y abordar mejor cualquier problema en el código.

Comments are closed.