Está en la página 1de 36

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACION.


UNIVERSITARIA, CIENCIA Y TECNOLOGIA.

UNIVERSIDAD POLITECNICA TERRITORIAL DEL ESTADO PORTUGUESA


“JUAN DE JESUS MONTILLA”.

LA COLONIA-TUREN-SANTA ROSALÍA.

UNIDAD 4: Programación y Algorítmica

Profesor: Víctor Silva                                         Estudiante: Ender Nabea

CI: 27509393

Sección: 231

PNF: Informática 2° Semestre

15/05/2020

ENDER J. NABEA ALVAREZ 1


INDICE

ENDER J. NABEA ALVAREZ 2


ENDER J. NABEA ALVAREZ 3
Lista de Enlazados

Es una colección o secuencia de elementos llamados nodos, dispuestos uno


detrás de otro, en la que cada elemento se conecta con el siguiente elemento
por un “enlace” o “referencia”.

Clasificación de Lista de Enlazados

Las listas se pueden dividir en cuatro categorías

 Lista simplemente enlazada: Cada nodo (elemento) contiene un único


enlace que lo conecta al nodo siguiente. La lista es más eficiente tanto
en recorridos directos (“adelante”).

 Lista doblemente enlazadas: Cada nodo contiene dos enlaces a su nodo


predecesor y sucesor. La lista es eficiente tanto en recorridos directos
hacia (“adelante”) o “atrás”).

ENDER J. NABEA ALVAREZ 4


 Lista circular simplemente enlazada: Es la que el último elemento (cola)
se enlaza con el primer elemento (cabeza) de tal nodo puede ser
recorrida de modo circular (“en anillo”).

 Lista circular doblemente enlazada: Es la que el último elemento


enlazada al primero y viceversa. Esta lista se puede recorrer de modo
circular (“anillo”) tanto en dirección directa (“adelante”) como inversa
(“atrás”)

ENDER J. NABEA ALVAREZ 5


Fundamentos Teóricos (Lista de Enlazados)

Es una colección o secuencia de elementos dispuestos uno detrás de otro, en la


que cada elemento se conecta al siguiente elemento por un «enlace» o
«puntero». La idea básica consiste en construir. Una lista cuyos elementos
llamados nodos se componen de dos partes o campos: la primera parte o
campo contiene la información y es, por consiguiente, un valor de un tipo
genérico (denominado Dato, Tipo Elemento, Znfo, etc.) y la segunda parte o
campo es un puntero (denominado enlace o sgte) que apunta al siguiente
elemento de la lista.

Operaciones Básicas de Lista de Enlazados


Una lista enlazada requiere unos controles para la gestión de los
elementos contenidos en ellas. Estos controles se manifiestan en forma
de operaciones que tendrán las siguientes funciones:

ENDER J. NABEA ALVAREZ 6


 Declaración de los tipos nodo y puntero a nodo.

Una lista enlazada se compone de una serie de nodos enlazados


mediante punteros. Cada nodo es una combinación de dos partes: un
tipo de dato (entero, real, doble, carácter o tipo predefinido) y un enlace
(Puntero) al siguiente nodo. En C, se puede declarar un nuevo tipo de
dato por un nodo mediante las palabras reservadas STRUCT que
contiene las dos partes citadas.

 Inicialización o creación.

Un algoritmo para la creación de una lista enlazada entraña los siguientes


pasos:

1. 1: Declarar el tipo de dato y el puntero de cabeza o primero.

ENDER J. NABEA ALVAREZ 7


2. Asignar memoria para un elemento del tipo definido anteriormente
utilizando alguna de las funciones de asignación de memoria (mdiloc ( ) ,
calioc ( ) , realioc ( ) ).

3. Crear iterativamente el primer elemento (cabeza) y los elementos


sucesivos de una lista enlazada simplemente.

4. Repetir hasta que no haya más entrada para el elemento

Nota: La operación de crear un nodo se puede hacer en una función a la que se


pasa el valor del campo Dato y del campo siguiente. La función devuelve un
puntero al nodo creado:

ENDER J. NABEA ALVAREZ 8


La llamada a la función Crearnodo ( ) para crear el primer nodo de la
lista:
Primero = Crearnodo(l1, NULL);
Si ahora se desea añadir un nuevo elemento con un valor 6 , y situarlo
en el primer lugar de la lista se escribe
Simplemente:
Primero = Crearnodo (6, Primero);
En el siguiente ejemplo se visualiza el programa en Lenguaje C que
ejecuta la operación de crear nodos e ir
Añadiendo los mismos a la lista:

 Insertar elementos en una lista.

ENDER J. NABEA ALVAREZ 9


Aunque normalmente se insertan nuevos datos al final de una estructura
de datos, es más fácil y más eficiente insertar un elemento nuevo en la
cabeza de una lista. El proceso de inserción se puede resumir en este
Algoritmo:

 Buscar elementos de una lista (comprobar la existencia de elementos en


una lista).
La función Buscar Lista utiliza una variable puntero denominado auxiliar
(aux) que va recorriendo la lista nodo a nodo. Mediante un bucle, auxiliar
apunta a los nodos de la lista de modo que si se encuentra el nodo
buscado, se devuelve un puntero al nodo buscado con la sentencia de
retorno (return); en el caso de no. Encontrarse el nodo buscado la
función debe devolver NULL (return NULL)

1
ENDER J. NABEA ALVAREZ
0
 Eliminar elementos de una lista.

La operación de eliminar un nodo de una lista enlazada supone enlazar


el nodo anterior con el nodo siguiente al que se desea eliminar y liberar
la memoria que ocupa. El algoritmo para eliminar un nodo que contiene
un
Dato se puede expresar en estos pasos:

1
ENDER J. NABEA ALVAREZ
1
 Recorrer una lista enlazada (visitar cada nodo de la lista).
La operación de recorrer e imprimir los elementos de una lista se resume
en l el siguiente algoritmo:

Listas Doblemente Enlazadas y Circulares:

Es una lista lineal en la que cada nodo tiene dos enlaces, uno al nodo siguiente,
y otro al anterior.

1
ENDER J. NABEA ALVAREZ
2
Las listas doblemente enlazadas no necesitan un nodo especial para acceder a
ellas, pueden recorrerse en ambos sentidos a partir de cualquier nodo, esto es
porque a partir de cualquier nodo, siempre es posible alcanzar cualquier nodo
de la lista, hasta que se llega a uno de los extremos.

El nodo típico es el mismo que para construir las listas que hemos visto, salvo
que tienen otro puntero al nodo anterior:

Para C, y basándose en la declaración de nodo que se representó se darán los


siguientes representaciones.

Fundamentos Teóricos sobre la recursividad

Una función recursiva es una función que se invoca a si misma directa o


indirectamente. Un proceso recursivo debe tener una condición de terminación,

1
ENDER J. NABEA ALVAREZ
3
ya que no se puede ejecutar indefinidamente. La recursividad es una
herramienta muy útil en aplicaciones de cálculo y en problemas complejos de
naturaleza recursiva. Puede ser utilizada como una alternativa a la estructura
repetitiva.

Recursividad

Es una técnica de programación que busca resolver un problema sustituyéndolo


por otros problemas de la misma categoría, pero simples. La mayoría de los
lenguajes soportan los algoritmos recursivos, permitiendo una función se llame
a sí misma. En un algoritmo recursivo los bucles son típicos un algoritmo
iterativo (For, While, Do- While) se sustituyen por llamadas al propio algoritmo.
Se dice que un algoritmo es recursivo si dentro del cuerpo de este y de forma
directa o indirecta se realiza una llamada al mismo.

¿En qué consiste la recursividad?

 En el cuerpo de sentencias del subalgoritmo se invoca al propio


subalgoritmo para resolver “una versión más pequeña” del problema
original.

1
ENDER J. NABEA ALVAREZ
4
 Habrá un caso (o varios ) tan
simple que pueda resolverse
directamente sin necesidad de
hacer otra llamada recursiva.

Ámbito de Aplicación

Se utiliza para realizar una llamada a una función desde ella misma, de allí su
nombre. El ejemplo que se puede representar más usado por su fácil
compresión es los cálculos de números factoriales de 0.

 General
 Problemas cuya solución se puede hallar solucionando el mismo
problema, pero con un caso de menor tamaño.

1
ENDER J. NABEA ALVAREZ
5
Método de las tres preguntas
• La pregunta Caso-Base: ¿Existe una salida no recursiva o
Caso base del subalgoritmo? Además, ¿el subalgoritmo
Funciona correctamente para ella?
• La pregunta Más-pequeño: ¿Cada llamada recursiva se

1
ENDER J. NABEA ALVAREZ
6
Refiere a un caso más pequeño del problema original?
• La pregunta Caso-General: ¿es correcta la solución en
Aquellos casos no base?

Escritura de programas recursivos.


1.-Obtención de una definición exacta del problema.
2.-Determinar el tamaño del problema completo que hay
Que resolver Parámetros en la llamada inicial.
3.-Resolver el(los) casos bases o triviales (no recursivos).
4.-Resolver el caso general en términos de un caso más
Pequeño (llamada recursiva).
Razones de uso:
1. Problemas “casi irresolubles con estructuras iterativas”.
2. Soluciones elegante.
3. Soluciones más simples.

Diseño y estructura de Programas Recursivos

Cuando se diseña una función recursiva es preciso considerar una condición de


terminación, porque de lo contrario la función continuaría indefinidamente
invocándose a sí misma hasta que se agote la memoria.

Un ejemplo típico de recursividad es la función que determina el factorial de un


número.

1
ENDER J. NABEA ALVAREZ
7
1
ENDER J. NABEA ALVAREZ
8
Ventajas y Desventajas de la Recursividad

Ventajas: existen numerosos problemas complejos que poseen naturaleza


recursiva y, en consecuencia, son más fáciles de comprender, depurar e
implementar con algoritmos recursivos.

Desventajas: Resulta costoso en tiempo de procesador y espacio de memoria


ya que la recursión invoca repetidamente al mecanismo de recursividad y por
cada llamada recursiva se produce una copia de las variables de dicha función.

Introducción a las Estructuras de Datos Dinámicas Avanzadas

Tipo de Dato y Estructura de datos

Cuando surge la pregunta ¿Que es un tipo de dato?, la respuesta típica es


“integer, char y float”. Estos se refieren a diferentes clases de tipos de datos
que satisfacen las necesidades de un tipo de dato. Por definición, un tipo de
dato es un conjunto de valores que una variable de ese tipo puede tomar y las
operaciones permitidas sobre ellas. La definición anterior tiene dos partes
importantes, un conjunto de valores y las operaciones que estos valores.

1
ENDER J. NABEA ALVAREZ
9
Estructura de Datos

Son mecanismos de almacenamiento. Son aquellas que no se encuentran


directamente soportadas por el lenguaje de programación. Ellos son declarados
y definidos por los programadores por lo que a veces son referidos como tipo de
dato definidos por el usuario. Estas estructuras de datos tienen operaciones
apropiadas definidas sobres ellas.

Tipo de Dato Abstracto _ Abstract data Type (TDA):

Un TDA se refiere a entidades de almacenamiento de datos y las operaciones


definidas en esas entidades. Por lo tanto, se dice que un TDA es simplemente
una colección de operaciones. Ellas pueden ser vistas como notaciones
matemáticas para describir las operaciones sobre entidades de
almacenamiento de datos, sin hacer énfasis en los aspectos de implementación
de las operaciones.

Ejemplos de las estructuras de datos más usadas y algunas de sus operaciones


a nivel TDA se presentan a continuación:

2
ENDER J. NABEA ALVAREZ
0
Pilas

Una pila es una estructura de datos, que permite que los elementos sean
añadidos o eliminados solo por un lado. Las pilas son comunes en la vida real;
se tienen pilas de platos, pila de servilletas, pila de libros, pila de dólares, pila
de periódicos. Etc.

El final donde los elementos son añadidos o eliminados se conoce como ¨tope¨
(top) de la pila. En una pila, los elementos que son añadidos de últimos son los
primeros en ser removidos. De aquí que, las pilas también son conocidas como
listas Ultimo en entrar, Primero en salir (LIFO siglas en Ingles).

2
ENDER J. NABEA ALVAREZ
1
En una pila la operación o de inserción se refiere como `push` y la operación de
eliminación se refiere como `pop`.

Para utilizar el Tipo de Dato Abstracto (TDA) Pila, el mismo nos proveerá de
una serie de procedimientos que nos permitirán acceder o agregar elementos.

Los siguientes son los procedimientos básicos que debe contener una pila:

 P_Crear.
 P_Vaciar.
 P_Vacia.
 P_Agregar.
 P_Sacar.

Insertar en la pila (apilar o push): agrega un elemento a la pila, este nuevo


elemento de la pila estará en el tope de la misma.

Retirar de la pila (o desapilar, pop): retira o elimina el último elemento de la pila,


es decir, elimina el elemento que está en el tope.

2
ENDER J. NABEA ALVAREZ
2
El usuario de una pila utilizara estos procedimientos, sin tener en cuenta como
están implementados por dentro. Lo único que deberá conocer es los
procedimientos y sus parámetros.

Tipo de dato abstracto Pila:

Las pilas pueden se definidas como un TDA de acuerdo a:

1. New (S): crea una nueva pila S. La pila S esta vacia cuando se crea.
2. Push (S, element): pone un elemento en el tope de la pila.
3. Pop (S): Elimina el elemento del tope de la pila.
4. Top (S): Retorna el elemento en el tope de la pila.
5. Isempty(S): Retorna verdadero si es vacia, de lo contrario retorna falso.

Nota: En las operaciones en una pila, S se refiere a la pila.

Funcionalidades de las Pilas


2
ENDER J. NABEA ALVAREZ
3
Las pilas se utilizan en muchas aplicaciones que utilizamos con frecuencia.

 Gestión de ventanas en Windows o Linux (cuando cerramos una ventana


siempre recuperamos la que teníamos detrás).

Evaluación general de cualquier expresión matemática para evitar tener que


calcular el número de variables temporales que hacen falta.

 Navegador Web:
1. Se almacenan los sitios previamente visitados: cuando el usuario quiere
regresar (presiona el botón de retroceso o regresar), simplemente se
extrae la última dirección (pop) de la pila de sitios visitados.
2. Editores de texto u otras herramientas
Los cambios efectuados se almacenan en una pila
3. El Usuario puede deshacer los cambios mediante la operación “undo” o
deshacer, la cual extrae el estado del texto o cualquier elemento, antes
del último cambio realizado.

Especificaciones de Pila
Aplicaciones de pilas:
Hay un número de aplicaciones que requieren la pila como estructurad
de datos. Entre ellas tenemos:

 Procesamiento de cadenas
Hay muchas aplicaciones de procesamiento de cadenas (string) donde
las pilas son estructuras de Datos vitales. Un ejemplo simple es la
detección de cadenas palíndrome.

 Retorno de función o procedimiento

2
ENDER J. NABEA ALVAREZ
4
Cuando una función se invoca los parámetros deben estar disponibles
para el programa que invoca. Después de que la ejecución de la función
se completa, el control debe retornar a la sentencia siguiente a la
invocación de esa función

 Soporte para la recursión


Las pilas juegan un papel importante para implementar la recursión.
3.-Evaluar expresiones aritméticasUna expresión aritmética se presenta
de la siguiente forma:
a * b –( c + d) *(e – f)

Se sabe que las expresiones entre paréntesis c+d y e–f s evalúan antes
que el resto de los operadores aplicados a los operando.
Así es necesario recordar los resultados de c + d y e – f cuando la
expresión completa se evalúa.

Implementación
Para la implementación de la pila, es necesario que el tipo de dato
contenga una referencia al nodo tope de la pila. Luego, cada nodo
tendrá una referencia al nodo que le siguiente. De esta manera se
formara una cadena con inicio en el nodo tope y que finaliza en el último
elemento de la pila, cuyo nodo no referenciará a ningún elemento.

2
ENDER J. NABEA ALVAREZ
5
Colas

Una cola, es una estructura muy utilizada e importante en el área de la


programación, en la cual se almacenan elementos (en orden de llegada), es
decir que, se ingresan los elementos por la parte final de la estructura y se
eliminan (o se sirven) por la parte del frente.

2
ENDER J. NABEA ALVAREZ
6
Una Cola también se denomina una lista “primero en entrar, primero en salir” o
simplemente FIFO (First-In First-Out).

En otras palabras, los elementos se agregan al final y se sacan del principio de


la cola. Esta característica hace que el primer elemento insertado en la cola es
el primero en salir, como en cualquier cola de la realidad, en un banco, en el
cine, en el supermercado.

Funcionalidades Básicas o primitivas

Para utilizar el Tipo de Dato Abstracto (TDA) Pila, el mismo nos proveerá de
una serie de procedimientos que nos permitirán acceder o agregar elementos.

Los siguientes son los procedimientos básicos que debe contener una pila:

 C_Crear
2
ENDER J. NABEA ALVAREZ
7
 C_Vaciar
 C_Vacia
 C_Agregar
 C_Sacar

Insertar en la cola (encolar): agrega un elemento a la cola, este nuevo elemento


de la cola estará en el extremo final de la misma.

Retirar de la cola (desencolar): retira o elimina el primer elemento de la cola, es


decir, elimina el elemento que está en el frente

Tipos de colas

2
ENDER J. NABEA ALVAREZ
8
 Colas circulares (anillos): en las que el último elemento y el
primero están unidos.
 Colas de prioridad: En ellas, los elementos se atienden en el
orden indicado por una prioridad asociada a cada uno. Si varios
elementos tienen la misma prioridad, se atenderán de modo
convencional según la posición que ocupen. Hay 2 formas de
implementación:

1. Añadir un campo a cada nodo con su prioridad. Resulta conveniente


mantener la cola ordenada por orden de prioridad.
2. Crear tantas colas como prioridades haya, y almacenar cada elemento
en su cola.

 Bicolas: son colas en donde los nodos se pueden añadir y quitar


por ambos extremos; se les llama DEQUE (Double Ended
QUEue). Para representar las bicolas lo podemos hacer con un
array circular con Inicio y Fin que apunten a cada uno de los
extremos. Hay variantes:
 Bicolas de entrada restringida: Son aquellas donde la inserción
sólo se hace por el final, aunque podemos eliminar al inicio ó
al final.
 Bicolas de salida restringida: Son aquellas donde sólo se elimina
por el final, aunque se puede insertar al inicio y al final.

2
ENDER J. NABEA ALVAREZ
9
Funcionalidades de colas

A continuación se discuten algunas aplicaciones de colas.

1.- Implementando Colas de Impresión

En los sistemas operativos, las impresoras pueden ser compartidas. Los


usuarios simplemente envían sus requerimientos de impresión a la impresora
compartida. Estos

Trabajos de impresión son ubicados en una cola de impresión y se imprimen


secuencialmente.

2.- Sistemas Operativos

En los sistemas operativos muchos procesos compiten y hacen uso de los


recursos escasos de la computadora, como CPU, memoria principal y
dispositivos. Por lo tanto, cuando un proceso está usando algún recurso en
particular los demás procesos deben esperar

3.- Administración del tráfico de la red

Cuando los datos se trasmiten a través de redes, una cola es una excelente
estructura de Datos para almacenar los datos y permitir que los elementos de
datos se ordenen.

3
ENDER J. NABEA ALVAREZ
0
Implementación

Para implementar una cola será necesario que la estructura contenga una
referencia al primer nodo de la cola y otra al último nodo. Luego, desde el
primer nodo de la cola, se irán encadenando los demás nodos, hasta el último.

Árbol

Es una estructura no lineal en la que cada nodo puede apuntar a uno o varios
nodos. También se suele dar una definición recursiva: un árbol es una
estructura compuesta por un dato o varios árboles. Estas son simples
características que implican sus funciones más estructuradas. En relación con
otros nodos

3
ENDER J. NABEA ALVAREZ
1
Tipos

En los árboles o estructuras suelen representarse por:

 Árbol Binario.
Es un árbol con raíz en el que cada nodo tiene como máximo dos hijos
Árbol Binario lleno.
Árbol Binario perfecto
 Árbol AVL
Su nombre de las iniciales de los apellidos de sus inventores, Adelson-
Velskii y Landis. Lo dieron a conocer en la publicación de un artículo en
1962: "Analgorithmfortheorganizationof information" ("Un algoritmo para
la organización de la información").

Están siempre equilibrados de tal modo que para todos los nodos, la altura de la
rama izquierda no difiere en más de una unidad de la altura de la rama derecha.
Gracias a esta forma de equilibrio (o balanceo), la complejidad de una
búsqueda en uno de estos árboles se mantiene siempre en orden de
complejidad.

 Nodo hijo: cualquiera de los nodos apuntados por uno de los


nodos del árbol. En el ejemplo, 'L' y 'M' son hijos de 'G'.
 Nodo padre: nodo que contiene un puntero al nodo actual. En el
ejemplo, el nodo 'A' es padre de 'B', 'C' y 'D'.

Los árboles tienen otra característica importante: cada nodo sólo puede ser
apuntado por otro nodo, es decir, cada nodo sólo tendrá un padre. Esto hace
que estos árboles estén fuertemente jerarquizados, y es lo que en realidad les
da la apariencia de árboles.

3
ENDER J. NABEA ALVAREZ
2
En cuanto a la posición dentro del árbol:

 Nodo raíz: nodo que no tiene padre. Este es el nodo que


usaremos para referirnos al árbol. En el ejemplo, ese nodo es el 'A'.
 Nodo hoja: nodo que no tiene hijos. En el ejemplo hay varios: 'F',
'H', 'I', 'K', 'L', 'M', 'N' y 'O'.
 Nodo rama: aunque esta definición apenas la usaremos, estos
son los nodos que no pertenecen a ninguna de las dos categorías
anteriores. En el ejemplo: 'B', 'C', 'D', 'E', 'G' y 'J'.

Otra característica que normalmente tendrán nuestros árboles es que todos los
nodos contengan el mismo número de punteros, es decir, usa la misma
estructura para todos los nodos del árbol. Esto hace que la estructura sea más
sencilla, y por lo tanto también los programas para trabajar con ellos.

Tampoco es necesario que todos los nodos hijos de un nodo concreto existan.
Es decir, que pueden usarse todos, algunos o ninguno de los punteros de cada
nodo.

Un árbol en el que en cada nodo o bien todos o ninguno de los hijos existe, se
llama árbol completo.

En una cosa, los árboles se parecen al resto de las estructuras que hemos
visto: dado un nodo cualquiera de la estructura, podemos considerarlo como
una estructura independiente. Es decir, un nodo cualquiera puede ser
considerado como la raíz de un árbol completo.

Implementacion

Existen otros conceptos que definen las características del árbol, en relación a
su tamaño:

 Orden: es el número potencial de hijos que puede tener cada


elemento de árbol. De este modo, diremos que un árbol en el que

3
ENDER J. NABEA ALVAREZ
3
cada nodo puede apuntar a otros dos es de orden dos, si puede
apuntar a tres será de orden tres, etc.
 Grado: el número de hijos que tiene el elemento con más hijos
dentro del árbol. En el árbol del ejemplo, el grado es tres, ya que
tanto 'A' como 'D' tienen tres hijos, y no existen elementos con más
de tres hijos.
 Nivel: se define para cada elemento del árbol como la distancia a
la raíz, medida en nodos. El nivel de la raíz es cero y el de sus hijos
uno. Así sucesivamente. En el ejemplo, el nodo 'D' tiene nivel 1, el
nodo 'G' tiene nivel 2, y el nodo 'N', nivel 3.
 Altura: la altura de un árbol se define como el nivel del nodo de
mayor nivel. Como cada nodo de un árbol puede considerarse a su
vez como la raíz de un árbol, también podemos hablar de altura de
ramas. El árbol del ejemplo tiene altura 3, la rama 'B' tiene altura 2,
la rama 'G' tiene altura 1, la 'H' cero, etc.

Los árboles de orden dos son bastante especiales Estos árboles se conocen
también como árboles binarios.

Frecuentemente, aunque tampoco es estrictamente necesario, para hacer más


fácil moverse a través del árbol, añadiremos un puntero a cada nodo que
apunte al nodo padre. De este modo podremos avanzar en dirección a la raíz, y
no sólo hacia las hojas.

Es importante conservar siempre el nodo raíz ya que es el nodo a partir del cual


se desarrolla el árbol, si perdemos este nodo, perderemos el acceso a todo el
árbol.

3
ENDER J. NABEA ALVAREZ
4
Conclusión

En función de todos estos conceptos analizados se tomó como fundamentos


especiales en el campo de la programación y algorítmica siendo así de utilidad
al momento de una ejecución o creación de aplicación gracias al conocimiento
básico que se dio a investigar en este trabajo y a la supervisión e
implementación de guías y otras fuentes que se puedo investigar, todos estos
temas relacionados a la algorítmica para así compartir más de estas
herramientas informáticas en un futuro para generaciones aspirantes a conocer
más sobre la programación y su implementación en dispositivos tecnológicos
que influyen en la vida cotidiana.

Referencias Bibliográficas

https://es.slideshare.net/angenio2/programacin-3-listas-enlazadas

https://iutpnf.files.wordpress.com/2010/06/listas-enlazadas-guia-bc3a1sica.pdf

http://www.conclase.net/c/edd/?cap=005

http://formacion.desarrollando.net/cursosfiles/formacion/curso_454/deda-03.pdf

https://algoritmica.webcindario.com/unidades/unidad13.pdf

https://www.ecured.cu/index.php?
title=Cola_(Estructura_de_datos)&oldid=1614197»

3
ENDER J. NABEA ALVAREZ
5
https://sites.google.com/site/algoritmicapnfiuptaeb/contenido/periodo-2/unidad-
13-recursividad

https://sites.google.com/site/portafoliosenati/fundamentos-de-programacion/13-
aplicar-recursividad

https://sites.google.com/site/algoritmicapnfiuptaeb/contenido/periodo-2/unidad-
14-introduccion-a-las-estructuras-de-datos-dinamicas-avanzadas-pilas-colas-y-
arboles

http://www.conclase.net/c/edd/?cap=006#inicio

http://www.conclase.net/c/edd/?cap=006#inicio

3
ENDER J. NABEA ALVAREZ
6

También podría gustarte