Está en la página 1de 15

Proyecto Final

Estructura de Datos

Instituto IACC

08 de Octubre 2018

Desarrollo
1) Se tiene la siguiente lista enlazada de 10 nodos (8, 10, 12 , 13, 26, 11, 35, 36, 40,
27) e indicar cómo quedaría gráficamente la lista si:

El grafico de la lista señalada en el inicio corresponde a la siguiente:

a) Se elimina el nodo 13:

Se elimina el nodo 13 en esta nueva lista quedaría como que el puntero siguiente, del
nodo 12 este ahora apuntaría al nodo 26 y el puntero anterior del nodo 26 ahora
apuntaría al nodo 12, así con esto queda fuera el nodo 13.

Se realiza de la siguiente manera para la eliminación del nodo 13.

 El puntero siguiente del nodo 12 que apunta al nodo 13, este ahora apuntaría al
nodo 26
 El puntero anterior del nodo 26 que apuntaba al nodo 13, este ahora apuntaría al
nodo 12
 Se realiza borrado de memoria

Ejemplo de la nueva estructura:


b) Se inserta el nodo 8 entre los nodos 35 y 40 la nueva lista quedaría de la
siguiente forma:

El puntero del nodo 35 siguiente, ahora este va al nuevo nodo, así como el puntero del
nodo 36 anterior, ahora el nuevo nodo apunta como anterior al nodo 8 y como siguiente
al nodo 36.

Para inserción solicitada entre nodo 35 y nodo 40.

 *El puntero siguiente del nodo 35 que apunta a nodo 36, este ahora apunta a
nodo 8.
 El puntero anterior de nodo 8 ahora apunta a nodo 35.
 El puntero anterior de nodo 36 el cual apuntaba a nodo 35, este ahora apunta a
nodo 8.

 El puntero siguiente de nodo 8 ahora apunta a nodo 36.

Para que quede solo el nodo apuntando al nodo 40 se debe borrar el nodo 36, para que
quede realizada la inserción de este nodo.

Se realiza de la siguiente manera para la eliminación del nodo 36.

 El puntero siguiente del nodo 8 que apunta al nodo 36, este ahora apuntaría al
nodo 40
 El puntero anterior del nodo 40 que apuntaba al nodo 36, este ahora apuntaría al
nodo 8
 Se realiza borrado de memoria.

Nuestra lista el final de todo lo solicitado nos quedaría de la siguiente forma:

2) Como dato inicial puedo decir que para realizar este ejercicio debemos saber
que lo que ocupamos es la filosofía es el primero en entrar es el último en salir
(LIFO) Como nuestra pila inicial consiste en 8 elementos (c, d, r, t, j, y, t, y) y se
nos ve reflejada de esta forma:
a) Se solicita insertar los nodos (a,e) la pila queda reflejada de la siguiente forma:

b) Para finalizar se solicita eliminar los nodos (c,y).


Como es una estructura lineal de datos en que se puede agregar o quitar elementos
únicamente por uno de los dos extremos, por ende, los elementos de una pila se
eliminan en el orden inverso al que se insertaron.
Que quiere decir esto es que los datos solicitados para eliminar no se podrían realizar
de forma exclusiva (C, Y), ya que para esto se debe eliminar toda la pila el primer
elemento que se ingreso es la letra C, por ende, para eliminar esta se debe eliminar
toda la pila o mejor dicho es vaciándola por completo.

3) Considere los siguientes nodos (5, 7, 9, 12, 16, 21, 23, 28). Explique de qué
forma se insertan y se sacan estos nodos de manera que el primero en entrar
sea el primero en salir. Identifique qué tipo de estructura de datos es y cómo
quedaría gráficamente.

Además, mencione dos ventajas y dos desventajas de este ordenamiento de


datos, basándose en un ejemplo de la vida cotidiana.

Este tipo de estructura en la cual consiste en que el primero en entrar es el primero


en salir a esto se le conoce como “cola” en donde su filosofía es la nombrada
anteriormente, una vez que tenemos identificada la estructura, la cual es cola
procederemos a insertar los valores dados, entonces nuestra cola queda de la
siguiente manera:

Imagen:

Una vez con nuestra cola ya hecha procederemos a realizar una inserción de un
nuevo elemento en este caso insertaremos el nodo con valor 31, en donde
insertamos

Imagen:
Ya agregado nuestro nuevo elemento este toma la ubicación del último en la fila el
cual se destaca con rojo y queda ubicado al lado derecho del último nodo el cual es
el 28, entonces ahora nuestro último nodo es el valor 31, como se muestra en la
imagen anterior.

4) Implemente un algoritmo utilizando arreglos que permitan ordenar de mayor a


menor los promedios de notas de los alumnos del curso de Estructuras de Datos:

Proceso Notas
Definir nombres como caracter;
Definir nota como entero;
Definir mayor como entero;
Definir menor Como Entero;
Definir alumno como caracter; // Alumno con mayor nota//
Definir alumnos como caracter; // Alumnos con mayor nota //
Definir i como entero;
Dimension nombres[10];
Dimension nota[10];
mayor <- 1;
menor <- 70;
Para i<-0 Hasta 10 Con Paso 1 Hacer
Escribir nombre del alumno;
Leer nombres[i];
Escribir "nota alumnos";
Leer nota[i];
FinPara
Para i<-0 Hasta 10 Con Paso 1 Hacer
Si notas[i] > mayor Entonces
mayor <- nota[i];
alumno <- nombres[i];
FinSi
Si notas[i] < menor Entonces
menor <- nota[i];
alumnos <- nombres[i];
FinSi
FinPara
FinProceso
5) Suponga que Ud. es un programador y le han solicitado que organice la base de
datos de la Escuela de Informática de un instituto profesional que cuenta con un
total de 450 estudiantes, para que sea manejada por el Departamento de
Recursos Estudiantiles. De acuerdo a sus conocimientos informáticos, concluye
que lo mejor es trabajar los datos con listas doblemente enlazadas. Argumente
adecuadamente tomando en cuenta las ventajas de usar este sistema de
estructura de datos.

Yo Como programador puedo decir que las listas doblemente enlazadas necesitan,
más espacio por nodo y las operaciones básicas que realiza resultan mucho más
costosas, a pesar que resultan más costosas nos ofrecen una mayor facilidad para
poder manipularlas ya que estas permiten el acceso de forma secuencial a la lista de
forma bidireccional.

Uno puede realizar la operación de insertar o eliminar un nodo en un número fijo de


operaciones solamente con la ubicación del nodo a diferencia de las listas simples que
estas requieren la dirección del nodo anterior para insertar o eliminar correctamente.

El enlace doble de los nodos nos permite recorrer la lista en cualquier dirección
mientras que si agregamos o eliminamos un nodo en una lista doblemente enlazada
esta requiere cambiar más enlaces que en la de una lista enlazada simple estas
operaciones son más simples ya que no es necesario de mantener guardado el nodo
anterior durante el recorrido, tampoco tenemos la necesidad de recorrer la lista
completa para hallar el nodo anterior.

“Dato sumamente Útil”


La referencia del nodo que se quiere eliminar o insertar es lo único necesario.
Al final lo que importa es el resultado y como con este tipo de listas doblemente
enlazadas se tiene más facilidad de manipulación, es que se usa este tipo de lista.

2.- La siguiente lista doblemente enlazada tiene cinco nodos:

a) Si tuviera que insertar dos nodos uno entre los nodos 1 y 2 y el otro entre los
nodos 3 y 4 ¿cómo quedaría configurada la nueva lista doblemente enlazada?

El puntero del nodo 1 siguiente, se dirige al nuevo nodo, así como el puntero del nodo 2
anterior y el nuevo nodo apunta como anterior al nodo 1 y como siguiente al nodo 2.
En los dos casos es la misma secuencia, solo que varía el número del nodo.

 Puntero siguiente de nodo 1 apunta al nodo 2, ahora está apuntando al nuevo


nodo.
 Puntero anterior del nuevo nodo apunta al nodo.
 Puntero el puntero anterior del nodo 2 que estaba apuntando al nodo 1, ahora
apunta al nuevo nodo.
 Puntero siguiente del nuevo nodo apunta al nodo 2.

Para insertar entre en nodo 3 y el nodo 4.


 Puntero siguiente del nodo 3 el cual apunta al nodo 4, ahora apunta al nuevo
nodo.
 Puntero anterior del nuevo nodo apunta al nodo 3.
 Puntero anterior del nodo 4 el cual apuntaba al nodo 3 ahora apunta al nuevo
nodo.
 Puntero siguiente del nuevo nodo apunta al nodo 4.

La estructura nueva correspondería a la siguiente:

El Código correspondería al siguiente:


Public void SplDoublylinkedList : : add ( mixed $ index , mixed $ newval )

El valor dado por Newval se inserta en el índice especificado por Index, por ende se
reorganiza el valor anterior a ese índice y todos los valores en general.

b) Y de la lista doblemente enlazada recién reconfigurada, que ahora cuenta con siete
nodos, tuviera que borrar el nodo 2 ¿cómo quedaría configurada la nueva lista
doblemente enlazada?

El puntero del siguiente nodo 1 apunta al nodo 3 y el puntero anterior del nodo 3 apunta
al nodo 1, quedando fuera el nodo 2.
Sería algo así:

 El puntero siguiente del nodo 1 que apunta al nodo 2 ahora apunta al nodo 3.
 El puntero anterior del nodo 3 que estaba apuntando al nodo 2 ahora está
apuntando al nodo 1.

6) Implementar gráficamente el recorrido en preorden de un árbol binario con los


siguientes 13 nodos: (G, E, A, I, B, M, C, L, D, F, K, J, H). Luego, ¿cómo sería su
recorrido en postorden? Grafíquelo.

Y ¿cuál de estos dos recorridos sería el más adecuado para acceder a los nodos
con las vocales? Justifique su respuesta.

Recorrido representado gráficamente:

El recorrido más adecuado es en postorden es I,B,A,E,D,L,F,C,H,J,K,M,G.


Con este recorrido en postorden es posible llegar más rápido a las vocales, por la
secuencia de recorrido de postorden: I, B, A, E, D, L, F, C, H, J, K, M, G. (izquierda,
derecha, raíz)

Bibliografía
IACC (2018). Estructuras de Datos. Semana 1, 2, 3, 4, 5, 6 ,7 ,8.

También podría gustarte