Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TRABAJO ESCRITO
UNIDADES 11-12-13-14
Profesor: Alumno:
Rodolfo Caccamo Sonnelys Querales
Norys Blanco
Rafael González
José Díaz
Caracas, 25/05/2023
INTRODUCCION
float u, v; /* 1 */
float u, v; /* 1*/ float *pv; /* 2 */
float *pv=&v; .............
pv=&v; /* 3 */
Ejemplo: Por último, para acabar este apartado pondremos un ejemplo sencillo
de variables puntero con una explicación gráfica, de la traza que se va
produciendo.
o Punteros y funciones
o Punteros y estructuras
Ejemplo: Pasamos una estructura a una función la cual nos sumará la cantidad
de dinero que tenemos en ahorrado, y la cantidad de dinero que tenemos en la
cuenta corriente (toda esta información permanece en una estructura), el
resultado de la suma será devuelto con return al programa principal.
o Conceptos y clasificaciones
Una lista enlazada simple es una estructura de datos que consiste en una serie
de nodos conectados entre sí. Cada nodo tiene un campo de enlace único que
lo conecta con el siguiente nodo de la lista. La variable de referencia apunta al
primer nodo de la lista y el último nodo tiene un enlace que contiene NULL para
indicar el final de la lista. Aunque comúnmente se llama “top” a la variable de
referencia, se puede llamar de cualquier manera.
Una lista doblemente enlazada es una versión más avanzada de una lista
enlazada. Cada nodo tiene dos enlaces: uno que apunta al nodo anterior (o al
valor NULL si es el primer nodo) y otro que apunta al nodo siguiente (o al valor
NULL si es el último nodo). Existe una técnica llamada XOR-Linking que
permite implementar listas doblemente enlazadas en lenguajes de bajo nivel
utilizando una sola palabra para ambos enlaces, aunque esta técnica no se
utiliza comúnmente.
En una lista enlazada circular simple, cada nodo está conectado a otro nodo a
través de un enlace. A diferencia de las listas enlazadas simples, el siguiente
nodo del último apunta al primero. Para insertar nuevos nodos de manera
eficiente, es necesario tener una referencia a un nodo existente. Por lo general,
se mantiene una referencia al último elemento de la lista para permitir
inserciones rápidas al principio y acceder fácilmente al primer nodo desde el
puntero del último nodo.
o Nodo Centinela
o Colas
o Fundamentos teóricos
Funciones recursivas
Tipos de recursividad
Las funciones recursivas se clasifican en: recursividad directa: se llama así
mismo (método de recursividad simple) o n varias partes del programa
(recursividad múltiple).recursividad indirecta o mutua: dos métodos se llaman
entre sí.
Quizás en la teoría cueste más ver lo que es una función recursiva que por
la práctica. Un ejemplo típico de recursividad seria la función factorial. La
factorial es una función matemática que se resuelve multiplicando ese número
por todos los números naturales que hay entre el y 1.
Ventajas:
1- Ineficiencia
7- En general, una función recursiva toma más tiempo en generarse que una
iterativa.
Ejemplo:
Sino
f <- n *factorial (n – 1) // caso recursivo
fsi
Lineal
Anidada
Final
-Rec. Indirecta
No final
Ejemplo:
PHP, Java, C++, Python.
Características:
Programar viene a ser el proceso de crear un software fiable mediante la
escritura, prueba, depuración, compilación o interpretación y mantenimiento del
código fuente de dicho programa informático. Básicamente este proceso se
define aplicando lógicamente los siguientes pasos:
- Desarrollo lógico del programa para resolver un problema particular.
- Escritura de la lógica del programa empleando un lenguaje de
programación especifico (codificación del programa)
- Compilación o interpretación del programa hasta convertirlo en lenguaje
de máquina.
- Prueba y depuración del programa.
- Desarrollo de la documentación.
Historia
Pila de llamada
Colas
Clasificación de Colas
Colas circulares
Es aquella en la cual el sucesor del último elemento es el primero.
Por lo tanto, el manejo de las colas como estructuras circulares permite un
mejor uso del espacio de memoria reservando para la implementación de las
pilas.
Colas dobles
Permiten realizar las operaciones de inserción y eliminación por cualquiera
de sus extremos.
Una cola doble también puede ser circular, en dicho caso, será necesario
que los métodos de inserción y eliminación (sobre cualquiera de los métodos
de inserción y eliminación (sobre cualquiera de los extremos) considere el
movimiento adecuado de los punteros.
Otros tipos:
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 dos
formas de implementación.
Añadir un campo a cada nodo con su prioridad. Resulta conveniente
mantener la cola ordenada por orden de prioridad.
Crear tantas colas como prioridades haya, y almacenar cada elemento en
su cola.
Bicolas de entrada registrada: Son aquellas donde la inserción solo se hace por
el fina, aunque podemos eliminar al inicio o al final.
Bicolas de salida restringida: Son aquellas donde solo se elimina por el final,
aunque se puede insertar al inicio y al final.
Árboles y Características:
Los árboles son estructuras de datos no lineales.
Cada elemento conocido con el nombre de NODO.
Un árbol se define como una colección de nodos donde cada uno además
de almacenar información, guarda las direcciones de sus sucesores.
Se conoce la dirección de uno de los nodos, llamado raíz y a partir de él se
tiene acceso a todos los otros miembros de la estructura, grafos, anidación de
paréntesis y diagramas de ven.
Hijo: Es aquel nodo que siempre va a tener un nodo antecesor o padre, son
aquellos que se encuentran en el mismo nivel.
Padre: Es aquel que tiene hijos y también puede tener o no antecesores.
Hermano: Dos nodos son hermanos si son apuntados por el mismo nodo, es
decir si tienen el mismo padre.
Raíz: Es el nodo principal de un árbol y no tiene antecesores.
Hoja o terminal: Son aquellos nodos que no tienen hijos o también los nodos
finales de un árbol.
Interior: Se dice que un nodo es interior si no es raíz ni hoja.
Nivel de un nodo: Se dice que el nivel de un nodo es el número de arcos que
deben ser recorridos, partiendo de la raíz para llegar hasta él.
Altura del árbol: Se dice que la altura de un árbol es el máximo de los niveles
considerando todos sus nodos.
Grado de un nodo: se dice que el grado de un nodo es el número de hijos que
tiene dicho nodo.
Tipos de Arboles:
Arboles binarios: Son árboles donde cada nodo sólo puede apuntar a dos
nodos
Se define un árbol binario como un conjunto finito de elementos (nodos) que
bien está vacío o está formado por una raíz con dos árboles binarios disjuntos,
es decir, dos descendientes directos llamados subárbol izquierdo y subárbol
derecho.
Los árboles binarios (también llamados de grado 2) tienen una especial
importancia.
Las aplicaciones de los arboles binarios son muy variadas ya que se les
puede utilizar para representar una estructura en la cual es posible tomar
decisiones con dos opciones en distintos puntos.
14-11
14-12
Arboles- B:
Son árboles cuyos nodos pueden tener un número múltiple de hijos tal como
muestra el esquema.
CONCLUSIONES
https://ccia.ugr.es/~jfv/ed1/c/cdrom/cap8/cap82.htm#:~:text=Un%20puntero%20es%20una
%20variable,un%20elemento%20de%20un%20array.
https://www.ibm.com/docs/es/openxl-fortran-aix/17.1.0?topic=calls-pointers-function
https://ccia.ugr.es/~jfv/ed1/c/cdrom/cap8/cap811.htm
https://es.wikipedia.org/wiki/Lista_enlazada
https://www.technodyan.com/lista-simplemente-enlazada/
#Operaciones_basicas_de_la_lista_enlazada_simple_en_C
https://calcifer.org/documentos/librognome/glib-lists-queues.html
http://lesmarydavid.blogspot.com/2015/10/estructuras-de-datos-avanzadas-pilas.html
Anexo