Python - Estructuras dinámicas en Python

 
Vista:

Estructuras dinámicas en Python

Publicado por Mathías Rodríguez (1 intervención) el 02/10/2005 02:45:01
Quisiera saber si es posible la implementación de estructuras dinámicas en Python tales como listas, colas,pilas y árboles binarios.
Espero pronto su respuesta. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Estructuras dinámicas en Python

Publicado por danisfe (3 intervenciones) el 11/10/2005 19:20:35
Hola,
por supuesto que si. Por ejemplo, una lista muy simple y dinámica se realizaría de la siguiente forma:
a = [] # Aqui se construye la lista
a.append(2)
a.append(3)
#Se añaden dos elementos a la lista y el tamaño crece...
Si bien, esta forma de tener objetos dinámicos en memoria no se puede comparar a la de C, puesto que el constructor de la clase List tiene una implementación interna que gestiona la memoria. Posiblemente, al declarar un objeto lista se reserve cierta cantidad de memoria para no tener que ir reservarndo siempre que se hagan operaciones con el elemento. Es una cuestión de optimización, debes tener en cuenta que en C también se hacen este tipo de cosas para evitar tener que reservar y liberar continuamente la memoria.
Otra forma de reservar espacio de memoria para los objetos es usar la palabra reservada None. Por ejemplo, en 'b' tenemos una lista de 50 elementos vacía.
b = [None]*50
Siempre podemos hacer crecer la lista con el método append o el operador '+' y eliminar elementos con el operador del.
En cuanto a los árboles binarios que comentas, de la misma forma que en C guardas un puntero a memoria de la estructura de las hojas del árbol, en Python internamente se realiza el mismo procedimiento si, por ejemplo, tienes un caso similar al siguiente:

class ABB:
def __init__(self, izq, der):
self.izq = izq
self.der = der

def anyade(self, elem):
if elem <= self.izq:
self.izq.anyade(elem)
else:
self.der.anyade(elem)

a = ABB(Nodo(2),Nodo(4))

Por cierto, esto de arriba no funciona... es solo una aproximación, la recursividad necesita de un caso base que la clase ABB debería controlar, etc.

En fin, espero haberte resuelto alguna duda.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Estructuras dinámicas en Python

Publicado por Steven Rodriguez (1 intervención) el 25/05/2006 00:09:08
Hola, mathias, soy Steven Rodriguez. Todo es posible. En python creas clases definidas. Por ejemplo: Para una lista Una matriz de strings, que aumente a la infinitud. Acerca de generar la lista, yo hice un proyecto de base de datos que me gustaria que lo veas (su nombre es CTDB.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar