Professional Documents
Culture Documents
ReportePractica 4U3 CH HA
ReportePractica 4U3 CH HA
TECNOLÓGICOSUPERIOR DE
SAN ANDRÉSTUXTLA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
ESTRUCTURA DE DATOS
MTI ANGELINA MÁRQUEZ JIMÉNEZ.
REPORTE DE PRÁCTICA NO. 4.
INTEGRANTES: ISAAC CHAGA CHAGALA
LEONARDO HERNÁNDEZ AZAMAR
GRUPO 304B
PERIODO: SEPTIEMBRE 2023- ENERO2024
SAN ANDRÉS TUXTLA, VERACRUZ.
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
PRÁCTICA NO. 4
NOMBRE DE LA Solución de problemas con TDA´S
PRÁCTICA
OBJETIVO El estudiante resolverá identificará si una palabra es
palíndromo o no, mediante la aplicación de TDA´S lineales con
listas enlazadas.
FUNDAMENTO TEÓRICO
LISTAS ENLAZADAS
Una lista enlazada consta de una serie de elementos, llamados nodos, que se conectan
entre sí mediante punteros o referencias. Cada nodo contiene dos partes principales: el
valor del dato almacenado y un puntero al siguiente nodo de la lista. El último nodo de la
lista apunta a nil, lo que indica el final de la secuencia.
1. Existen varios tipos de listas enlazadas, como las listas enlazadas simples, las listas
enlazadas dobles y las listas enlazadas circulares. La principal diferencia entre estos
tipos radica en la forma en que los nodos están conectados entre sí. Listas
enlazadas simples: En estas listas, cada nodo tiene un puntero al siguiente nodo de
la lista.
2. Listas enlazadas dobles: Cada nodo tiene un puntero al siguiente nodo y otro al nodo
anterior, lo que facilita la navegación en ambas direcciones.
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
3. Listas enlazadas circulares: El último nodo de la lista apunta al primer nodo en lugar
de nil, lo que crea un bucle circular.[1]
Listas de adyacencia: En teoría de grafos, las listas enlazadas pueden emplearse para
representar listas de adyacencia, que son una forma de almacenar grafos en memoria.
Cada nodo de la lista enlazada representa un vértice del grafo, y sus nodos adyacentes se
almacenan como una lista enlazada asociada a ese vértice.[1]
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
Gestión de procesos: Los sistemas operativos utilizan listas enlazadas para mantener y
gestionar listas de procesos, lo que permite agregar, eliminar y reorganizar procesos de
manera eficiente.[1]
Undo y redo en aplicaciones: Las listas enlazadas dobles son útiles para implementar
funciones de deshacer y rehacer en aplicaciones de software, ya que permiten navegar
hacia adelante y hacia atrás en el historial de acciones realizadas.[1]
Cabe destacar que, aunque las listas enlazadas son una herramienta valiosa en ciertos
casos de uso, no siempre son la estructura de datos más eficiente. En algunos escenarios,
otras estructuras como arrays, slices o árboles pueden ser más apropiadas. La elección de
la estructura de datos adecuada dependerá de los requisitos específicos de la aplicación y
las operaciones que se realicen con mayor frecuencia.[1]
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
varios rectángulos. Sería muy tedioso para el programador definir la multiplicación de ‘base’
por ‘altura’ varias veces en el programa, además que limitaría al usuario a sacar un número
determinado de áreas. Por ello, el programador puede crear una función denominada
‘Área’, la cual va a ser llamada, con los parámetros correspondientes, el número de veces
que sean necesitadas por el usuario y así el programador se evita mucho trabajo, el
programa resulta más rápido, más eficiente y de menor longitud. Para lograr esto, se crea
el método Área de una manera separada de la interfaz gráfica presentada al usuario y se
estipula ahí la operación a realizar, devolviendo el valor de la multiplicación. En el método
principal solamente se llama a la función Área y el programa hace el resto.[2]
Al hecho de guardar todas las características y habilidades de un objeto por separado se
le llama Encapsulamiento y es también un concepto importante para entender la
estructuración de datos. Es frecuente que el Encapsulamiento sea usado como un sinónimo
del Ocultación de información, aunque algunos creen que no es así.[2]
import "fmt"
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
next *Node
}
if list.head == nil {
list.head = newNode
} else {
current := list.head
for current.next != nil {
current = current.next
}
current.next = newNode
}
list.size++
}
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
if list.head.data == value {
list.head = list.head.next
list.size--
return true
}
current := list.head
for current.next != nil {
if current.next.data == value {
current.next = current.next.next
list.size--
return true
}
current = current.next
}
return false
}
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
return nil
}
func main() {
list := LinkedList{}
list.Append(1)
list.Append(2)
list.Append(3)
list.Append(4)
fmt.Println("Lista enlazada:")
list.Print()
list.Remove(3)
fmt.Println("Lista enlazada después de eliminar el valor 3:")
list.Print()
node := list.Search(2)
if node != nil {
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
as listas al igual que las pilas y las colas, son una estructura de datos de tipo
lineal diferenciándose de las anteriores en el hecho de que pueden las inserciones y
eliminaciones se en cualquier parte de la lista. Esto hace que tengan mayor aplicabilidad
en el entorno real. Se abordan los temas relacionados con los conceptos básicos de las
listas, así como tipos de listas y las operaciones que se pueden realizar con las listas, todo
conjugado en programas de aplicación, implementados con apuntadores. Es importante
tener en cuenta que una estructura de datos lineal puede representarse en memoria ya sea
a través de arreglos o a través de listas enlazadas implementadas haciendo uso de los
apuntadores y por ende con la gestión de memoria dinámica que se asigna en tiempo de
ejecución.
Conceptos básicos de Listas
Una lista puede considerarse como una colección o secuencia de elementos del mismo tipo
que van en una posición uno de tras del otro, a este tipo de lista se le conoce como lista
continua, esta es una definición general, que incluye los ficheros y vectores.
Las entradas de una guía o directorio telefónico, por ejemplo, están en líneas sucesivas,
excepto en las partes superior e inferior de cada columna. Una lista lineal se almacena en
la memoria principal de una computadora en posiciones sucesivas de memoria; en el caso
cuando se almacenan en cinta magnética, los elementos sucesivos se presentan en
sucesión en la cinta. Esta asignación de memoria se denomina almacenamiento
secuencial.
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
Como se puede apreciar en la figura 1, se trata de una lista contigua de elementos de tipo
entero representados en un arreglo unidimensional de 6 campos, de tal manera que no es
posible insertar un nuevo elemento por que la lista está completa, esta es una de las
desventajas de este tipo de lista.
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
Generalmente las operaciones básicas que se pueden realizar en una lista enlazada son
las siguientes:
Operación de Inserción. Esta operación consiste en agregar un nuevo elemento a la lista.
Se pueden considerar tres casos especiales:
• Insertar un elemento al inicio de la lista.
• Insertar un elemento antes o después de un determinado elemento o nodo de la
lista.
• Insertar un elemento al final de la lista.
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
MATERIAL Y EQUIPO
4.00 GB
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
DESARROLLO
//Clase Nodo
public class NodoChar {
private char letra;
private NodoChar referencia;
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
}
}
//Clase PilaEnzPalindro
import java.util.Scanner;
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
}
aux = aux.getSigte();
}
}
// Método principal
public static void main(String args[]) {
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
copiar();
copiar_pila2();
verificarPalindromo();
}
}
RESULTADOS
Capturas
Aquí se ingresó la palabra luna y
nos mostró que no es palíndromo
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
REFERENCIAS
[1] TEMA 3: Tipos Abstractos de Datos: Ãrboles, Grafos. (s.f.). Departamento de
Lenguajes y Sistemas Informáticos - Departamento de Lenguajes y Sistemas
Informáticos. https://www.dlsi.ua.es/asignaturas/p2ir/teoria/l03/lessonh.html
[2] Colaboradores de los proyectos Wikimedia. (2004, 17 de junio). Tipo de dato abstracto
- Wikipedia, la enciclopedia libre. Wikipedia, la enciclopedia
libre. https://es.wikipedia.org/wiki/Tipo_de_dato_abstracto