Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Actividad 3 de algoritmos, Ejercicios de Algoritmos y Programación

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Tipo: Ejercicios

2022/2023

Subido el 14/05/2023

adrian-alejandro-tovar-escamilla
adrian-alejandro-tovar-escamilla 🇲🇽

5 documentos

1 / 7

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Universidad Autónoma
de Nuevo León
Facultad de Ingeniería
Mecánica y Eléctrica
ALGORITMOS
COMPUTACIONALES
Maestra: JESSICA NATALIA MARTINEZ BALDERAS
Matrícula
Estudiante
Programa Educativo
1995863
Adrián Alejandro Tovar Escamilla
ITS
Día 14 del mes de octubre del año 2022, Guadalupe, Nuevo León
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Actividad 3 de algoritmos y más Ejercicios en PDF de Algoritmos y Programación solo en Docsity!

Universidad Autónoma

de Nuevo León

Facultad de Ingeniería

Mecánica y Eléctrica

ALGORITMOS

COMPUTACIONALES

Maestra: JESSICA NATALIA MARTINEZ BALDERAS

Matrícula Estudiante Programa Educativo 1995863 Adrián Alejandro Tovar Escamilla ITS Día 14 del mes de octubre del año 2022 , Guadalupe, Nuevo León

Introducción

Estructura lineal Una estructura lineal de datos o lista está conformada por ninguno, uno o varios elementos que tienen una relación de adyacencia ordenada donde existe un primer elemento, seguido de un segundo elemento y así sucesivamente hasta llegar al último. El tipo de dato de los elementos puede ser cualquiera, pero debe ser el mismo tipo para todos. El valor contenido en los elementos puede ser el mismo o diferente. En estas estructuras se realizan operaciones de agregar y/o eliminar elementos a la lista según un criterio particular. Sobre la base de la forma y el lugar de la realización de estas operaciones en la misma, las listas se clasifican en listas de acceso restringido y listas de acceso no restringido. Las listas de acceso restringido son las pilas, colas y dipolos. En las pilas, las operaciones de acceso se realizan por un único extremo de la lista, al cual normalmente se denomina tope de la pila. En las colas, estas operaciones se realizan por ambos extremos de la lista llamados generalmente, inicio y fin de la cola. Finalmente, en los dipolos que son colas dobles, las operaciones se realizan también por ambos extremos de la lista, en este caso todas las operaciones se pueden hacer por ambos extremos, es decir se puede insertar o eliminar elementos por el tope o por el fin, a diferencia de la cola donde se inserta siempre por el fin y se elimina por el tope. Se puede entonces considerar al dipolo como una clase general de la clase cola. Las listas de acceso no restringido, denominadas listas, son el tipo más general, al cual se considera como la superclase de las otras clases de listas, en específico de las pilas, colas y dipolos. Haciendo la jerarquía de clases adecuada para estas estructuras, se tiene que la lista es la clase raíz de la jerarquía que tiene como subclases la pila, la cola y el dipolo, este último a su vez tiene como subclases el dipolo de entrada restringida y el dipolo de salida restringida.

primer cliente, los que están detrás se mueven o lo que es lo mismo, el inicio o tope de la cola se mueve al que era el segundo cliente que pasa a ser el nuevo primer cliente en la cola. Asimismo, cuando el nuevo cliente llega a la cola, se coloca al final de la misma, por lo cual el fin de la cola se mueve a la posición del nuevo cliente. Aunque, teóricamente, cualquier cliente puede salirse de la cola en un momento dado, en este caso no se le permite, la única manera de salir es llegar a la posición inicial. Se puede hacer la analogía con una fila donde hay barandas de lado y lado, que normalmente colocan para evitar que las personas entren y salgan por otro lugar que no sea el inicio y fin de la fila. Similar al subtipo pila, en la cola las operaciones básicas son: creación, destrucción, inserción al final de un nuevo elemento, eliminación del inicio de un elemento, consultar que elemento está al inicio y cual al final, y verificar si la cola está vacía. Según estas operaciones se especifica el TAD Cola. Dipolo Esta estructura equivale a dos colas colocadas una en un sentido y la otra en sentido contrario, por ello las operaciones de inserción y eliminación se pueden realizar por ambos extremos. Dos casos especiales se pueden tener, el dipolo de entrada restringida donde sólo se puede insertar por un extremo y eliminar por ambos, y el dipolo de salida restringida, donde se puede insertar por ambos extremos y sólo se puede suprimir por un extremo. Se llamará a estos extremos como izquierdo (izq) y derecho (der). Lista La lista es el tipo más general de estructura lineal donde las inserciones y eliminaciones se hacen en cualquier punto de la lista, por ello se debe especificar donde se requiere que se haga la operación. Sus operaciones básicas son: creación, destrucción, inserción, eliminación, consulta y verificación de lista vacía.

Algoritmos recursivos Los algoritmos recursivos son los que expresan la solución de un problema en términos de llamadas a sí mismos, este tipo de llamadas se conocen como llamadas recursivas o recurrentes. Como se usa Para utilizar la recursividad es necesario tener un problema, el cual pueda que tenga varias soluciones, pero en programación, se deberá hacer uso de la misma función para ir devolviendo el valor asignado para esa iteración, es decir que si se llama a la función recursiva, esta realizara la operación respectiva, la cual se deberá operar con el resultado de la siguiente iteración. En un ejemplo sencillo, se puede tener una multiplicación, es decir una suma de números n veces, para lo cual sería: Sumar(suma); suma + Sumar(suma); suma + Sumar(suma); suma + Sumar(suma); suma + Sumar(suma); suma + Sumar(suma); La idea básica es aplicar programación para no caer en un ciclo infinito al momento de utilizar recursividad. La función Sumar(suma) se puede observar como significa suma + Sumar(suma) pero deben de existir condicionales con contadores pues el ejemplo anterior suma al infinito (O según las capacidades establecidas por el software que corre el algoritmo). Por ejemplo, la solución:

Bibliografía http://webdiis.unizar.es/~elvira/eda/addeda/teruel/Estructuras_Lineales.html https://www.elconspirador.com/2013/12/27/algoritmo-recursivo/ https://sites.google.com/site/lugoleoc/estructuras-lineales