Está en la página 1de 8

Principios de estructura de datos

María Ignacia Lastra Tapia

Introducción a los lenguajes de programación

Instituto IACC

Domingo 10 de Febrero 2019


Introducción:

Entendemos por tipos de datos abtractos como analizar los datos y delimitar lo más relevante de

estos, de forma más lógica y simple. Entre los tipos de datos abstractos, como colas, pilas,

arrays,etc. podremos destacar el uso de estos en los siguientes ejercicios empleados. También

verificaremos la forma en la que podremos identificar si una palabra es palindromo a través de

una cadena doble con distintas estructuras y ciclos.

Desarrollo:

a) En la dulcería de Santiago, para que los clientes sean atendidos de forma ordenada, se podrá

reconocer un sistema de tipo abstracto de datos como ‘Cola’, ya que este sistema permite

ordenar datos de entrada y salida en una ‘array’, haciendo que el primero que llega, primero se

va ( FIFO = first in, first out) lo que garantizará un mejor orden en la atención, siendo más

rápido y cómodo tanto para los clientes como para la dulcería.

En informática este método se aplicaría de la siguiente forma:

Interfazpublica cola<E>{ // ‘E’ de varable elemento

void encolar(E x); // ‘void’ quiere decir que no devuelve o retorna ningún valor

E desencolar(); // donde se van desencolando elementos desde la primera

estructura (el primero que llega será atendido)

E primero(); //método conslutor, para saber (quién es) el primero de la cola

boolean esvacia(); // para saber si hay o no elementos

}
- Para el método de entrega de pasteles, también se podrá reconocer un sistema de tipo abstracto

de datos con modelo de ‘Pila’, ya que los pasteles deben estar siempre frescos por lo tanto el

último pastel que llega a la tienda es el primero en salir. En este caso la pila estará siempre vacía

para que el elemento que llegue, salga de una vez y no se apile con otros. (el límite de array será

uno).

En método algorítmico sería:

Interfaz publica Pila<E>{ //E variable de elemento

void apliar(E x); //pone el nuevo elemento (o pastel) por encima de los demás

E desapilar(); //elimina el elemento que está en el tope de la pila (el pastel que

llegó)

E tope(); //método consultor, para saber cuál es el elemento que está al tope

de la pila ( en este caso será 1 pastel )

boolean esvacia(); //para saber si hay o no elementos

b) Para que una función pueda calcular una palabra y verificar si es palíndromo o no. Esta

función estará compuesta por una secuencia de caracteres en cadena (con la variable $string),

para finalizar el proceso recursivo midiendo la longitud de la cadena (con la función strlen)

luego daremos una condición base if. Esta deberá tener la condición else comparando el primer

carácter con el último y recorriendo la longitud de la cadena para saber si la condición es

verdadera.

Daremos una sentencia (return) a la función, las letras marcadas se descartan y se pasan al

siguiente llamado, integrando nuevamente las condiciones if y else para determinar cuando las
letras no coinciden en el recorrido de la cadena, por lo que la condición será falsa y dará como

resultado una palabra no palíndromo.

La función se puede comprobar con el siguiente algoritmo:

Funtion palindromo($string){

if ((strlen($string) ==1 || (strlen($string) == 0)){

echo “La palabra es Palíndromo”;

else{

if (substr($string,0,1) == subtr($string,(strlen($string) – 1),1)){

return palindromo(substr($string, 1,strlen($string) -2));

else{

echo “La palabra no es Palíndromo”; }

$string = “somos”;

palindromo($string);

También la cola puede estar doblemente enlazada para realizar el algoritmo, con el ciclo

‘mientras que’ y de este modo verificar si la palabra ingresada por el usuario es palíndromo o no.

Este algoritmo mejor explicado quedaría de la siguiente forma:

Algoritmo palindromo(pal)
t= pal

contab=1 //para contar cuantos nodos tiene la cola doble

Mientrasque (t→sig<> NULL) // se realiza un ciclo donde t va a terminar en el

último nodo de la cola doble, por lo que t quedará

en el siguiente antes de llegar a NULL

contab = contab +1

t = t → sig

Finmientrasque

si (contab mod 2 = 0) //donde mod es lo que deja la división de dos n°s para

saber si la lista es par o impar

mitad = contab / 2

sino

mitad = (contab + 1) /2

Finsi

punt = ptr

J=0 //Recorrerá la cola doblemente enlazada

Switch = 0 // Que nos va a indicar si los extremos son iguales o no con el

ciclo ‘mientras que’

Mientrasque (j < mitad) ^ (Switch=0) //donde ‘mitad’ es la mitad de la lista y J es

la variable que va recorrer hasta la mitad de la lista

si (punt →info != t→info) //preguntamos por los dos extremos si son

diferentes
Switch=1 //activamos el switch si no se cumple la función

para que sea palíndromo.

Sino

t = t →anter // retrocedemos el puntero t

punt =punt → sig // aumentar el puntero ‘punt’

J = J +1 // y a la variable J aumentarla en 1

Finsi

FinMientrasque

si (Switch = 0) //si no se activó en el ciclo ‘mientras que’, la palabra es

palíndromo

Escriba (“La palabra es Palíndromo”)

sino // de lo contrario, no es palíndromo

Escriba (“La palabra no es Palíndromo”)

Finsi

FIN

Conclusión:

Al dar por concluido lo estudiado durante la semana la materia de tipos de datos abstractos,

podré verificar las diferentes herramientas que existen para programar en diferentes lenguajes

pero con el mismo propósito, con esto, quiero decir que los tipos de datos abstractos son

estructuras que pueden aplicarse como soporte en diferentes tipos de lenguajes de programación,
ya sea JavaScritp, C# , C++ , Php o Python, y al reconocer las estructuras de pilas, colas, array’s,

doble colas, etc. podremos realizar programas mas específicos.

Bibliografía:

- Alonso. S. J (2018) Estructura de datos. Tipos abstractos de datos. Recuperado de:

http://www6.uniovi.es/usr/cesar/Uned/EDA/Apuntes/ED1TEMA1.pdf

- Autor desconocido (desconocida). Capitulo 5: Arrays y cadenas. Recuperado de:

http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap5/f_cap52.htm

- IACC (2018). Principios de estructuras de datos. Introducción a la Programación. Semana 6.

- UCAM (26 marzo 2015). Fundamentos de Programación ll – Tipos Abstractos de Datos.

Recuperado de: https://www.youtube.com/watch?v=Kcnp3e17Gq4

- U. de Vallabolid (2011) Tipos Abstractos de Datos. Estructuras de Datos y Algoritmos.

Recuperado de: https://www.infor.uva.es/~cvaca/asigs/doceda/tema2.pdf

- V. Herrera. Josúe (Desconocida). KodigoSwift. Estructura de datos – Colas. Recuperado de:

https://kodigoswift.com/estructuras-de-datos-colas/

También podría gustarte