Sie sind auf Seite 1von 5

Nombre de alumno:

Escuela: Universidad Abierta y a Distancia de México


Nombre del Docente: Ivonne Enríquez Castillo
Semestre: 4
Grupo: B1-002
Ciclo: 2019-2
Asignatura: Estructura de Datos
Actividad: Autorreflexión
(Palíndromas) Supongamos que dada una palabra w (ejemplos w = hola ó w =
adiós), se desea encontrar la palabra invertida w′ (w′ = hola, w′ = soida). Pregunta
¿Como usarías una estructura Pila para diseñar una solución a este problema?
Implementa su tu solución en código.

package Class;

import java.util.Scanner;

public class NewClass {

public static void main(String[] args) {

//Se pide el String

System.out.println("Introduzca una palabra");

Scanner sc = new Scanner(System.in);

String palabra = sc.nextLine();

imprimirReves(palabra,0);

public static void imprimirReves(String palabra, int num) {

if(num == palabra.length()-1) {

System.out.println(palabra.charAt(palabra.length() – 1 -num));

}else {

System.out.print(palabra.charAt(palabra.length() – 1 -num));

imprimirReves(palabra,num+1);
}

}


1. ¿Que es un tipo abstracto de datos (TAD)?

Un Tipo Abstracto de Datos es un conjunto de valores y de operaciones definidos


mediante una especificación independiente de cualquier representación.

TAD = valores + operaciones

¿Que diferencia hay entre un TAD y una estructura de datos? 


Un tipo abstracto de datos es un tipo definido por el usuario cuya implementación no es


visible para el programador, y éste manipula las instancias de ese tipo abstracto a través
de funciones específicas que pertenecen a la biblioteca que lo implementa.

Lo que el programador manipula es la identidad de la instancia del tipo abstracto de datos,


que puede ser, por lo general:

1. Un número correspondiente a un índice de un array en donde se almacena parte de la


implementación de la instancia.

2. Una clave para localizar la instancia.

3. Un puntero que apunta a parte de la implementación de la instancia.

Un ejemplo de tipo abstracto de datos son los HANDLE de las API de Windows, como
HWND, que sirve para manipular a una ventana.

Los tipos abstractos de datos pertenecen al paradigma de programación con tipos de


datos abstractos, antecesor al paradigma orientado a objetos.

Las estructuras de datos son tipos de datos definidos por el usuario en donde están
organizados otros tipos de datos, ya sean tipos elementales, derivados, u otras
estructuras de datos. Algunas de las estructuras de datos clásicas son:
1. Pila

2. Cola

3. Arreglo Asociativo o Mapa

4. Conjunto

5. Lista Enlazada

6. Arbol

7. Tabla Hash

8. Grafo

En la programación orientada a objetos, estas estructuras de datos se denominan clases


contenedor. Hay que notar que también pueden implementarse como tipos abstractos de
datos.

La diferencia entre la forma de manipular los tipos definidos por el usuario, como las
estructuras de datos, en el paradigma de la programación orientada a objetos y el
paradigma de tipos de datos abstractos, es que en la primera, la identidad de una
instancia corresponde a referencia o puntero, mientras que en la segunda, la identidad es
un tipo abstracto que no muestra detalles de implementación.

Por ejemplo, un tipo de dato abstracto definido como un número entero cuyo valor es
5429 puede ser la identidad de un árbol binario de búsqueda. En POO, la identidad para
la misma instancia puede ser una variable de referencia.

2. ¿Mencionar al menos tres aplicaciones de las estructuras de datos dentro del


software (no cotidianas, particulares dentro de la computación como el
manejo de expresiones dentro de los compiladores o en las colas de
impresión, o en los exploradores (browsers)). 


Los arrays, palabra inglesa muy usada en términos de programación, también los
conocemos como arreglos, vectores, matrices, etc.
3. ¿Que es un tipo de datos simple y que es un tipo de datos abstracto ? 


Simples:
Son todos aquellos que abarcan una sola casilla de memoria como los boleanos, enteros,
flotantes, etc.

Estructurales:
Arreglos de cadenas, pilas o estructuras, abarcan mas de una casilla de memoria.
¿Qué diferencias encuentras entre un Algoritmo y la clásica comparación con una receta
de cocina?
Un algoritmo es la especificación detallada de los pasos necesarios para llevar a cabo una
tarea.
¿Revisar y reflexionar si consideras que para todo “problema bien planteado” (aquí
hay bastante generalidad, pero piensa en un problema de software o matemáticas)
existe un algoritmo que lo resuelva? Sugerencia: Investigar el problema de la
parada (Halting Problem, en inglés) 


El diseño de algoritmos es realmente de ayuda al desarrollo de la inteligencia lógico


matemática, el hecho de resolver problemas no solo de índole lógico matemática permite
aclarar el panorama y elegir la mejor opción para resolver la problemática. Las
definiciones y metodología, así como conceptos permiten entender todos los elementos
de un algoritmo y que de esta forma se puedan diseñar los propios para resolver
prácticamente cualquier problemática bien planteada.

Una estructura PILA (stack) es usada por el compilador para almacenar las
variables e información de las funciones dentro de los programas en una área
especifica de memoria ¿Que le pasa a nuestros programas cuando ocurre el clásico
y conocido error “DESVORDAMIENTO DE PILA” (STACKOVERFLOW)? 


Un stack overflow, en español desbordamiento de pila, es un error que ocurre cuando se


llena el stack y por lo tanto no se pueden crear más subrutinas anidadas.

¿Que caracteriza a las estructuras lineales? En otras palabras, ¿Porque se


denominan lineales? 


Las estructuras lineales de datos se caracterizan porque sus elementos están en


secuencia, relacionados en forma lineal, uno luego del otro. Cada elemento de la
estructura puede estar conformado por uno o varios sub-elementos o campos que pueden
pertenecer a cualquier tipo de dato, pero que normalmente son tipos básicos.

Das könnte Ihnen auch gefallen