Está en la página 1de 10

UCACUE

UNIVERSIDAD CATOLICA DE CUENCA


UNIDAD ACADEMICA DE TEGNOLOGIAS DE LA INFORMACION Y
COMUNICACIN (TIC)
DOCENTE:
ING MILTON CAMPOVERDE

ALUMNOS:
SEBASTIAN SAGUAY PUENTE

KEVIN MATUTE

MATERIA:
PROGRAMACION II

CARRERA:
ING SISTEMAS

CICLO:
4TO CICLO
FECHA:
18 DE MARZO DEL 2017
UCACUE

Contenido
Introduccin ................................................................................................................................3
Desarrollo ...................................................................................................................................3
BLOQUE 1 .................................................................................................................................3
LISTAS ....................................................................................................................................3
Lista Enlazada: ..................................................................................................................3
Lista Circular: .....................................................................................................................3
Lista Doblemente Enlazada: ............................................................................................3
Lista Doblemente Enlazada circulares: ..........................................................................3
Aplicaciones de las Listas: ...............................................................................................3
BLOQUE 2 .................................................................................................................................4
Pilas Colas y Recursividad ...................................................................................................4
Implementacin de Pilas: .................................................................................................4
Operaciones con Pilas: .....................................................................................................4
Implementacin de Colas .....................................................................................................5
Implementacin de colas basada en celdas enlazadas. ..............................................5
Operaciones con colas: ....................................................................................................5
Colas Circulares.................................................................................................................6
Colas dobles.......................................................................................................................7
Recursividad:......................................................................................................................7
Ordenamiento y Bsqueda Recursiva. ...........................................................................7
BLOQUE3 ..................................................................................................................................7
rboles y Grafos ....................................................................................................................7
Arboles N-Arios ..................................................................................................................7
Arboles Binarios de bsqueda. ........................................................................................8
Arboles B+ ..........................................................................................................................8
Grafos Dirigidos .................................................................................................................8
Grafos no Dirigidos ............................................................................................................8
Preguntas ...................................................................................................................................8
UCACUE

Introduccin

El tema a continuacin incluye temas tan importantes en el campo de algoritmia, programacin e ingeniera
de sistemas, tales como complejidad y eficiencia de algoritmos, abstraccin, recursividad, representacin
de estructuras de datos bsicas tales como arrays o arreglos (vectores, listas y tablas), archivos y
estructuras dinmicas como pilas, colas, listas, rboles y grafos. Durante el ciclo pasado hemos estudiado
de un modo riguroso y eminentemente prctico, aprovechando la experiencia de nuestro docente, las
tcnicas fundamentales de algoritmos, anlisis de algoritmos y estructuras de datos con un mtodo de
aprendizaje gradual que facilita la adquisicin de conocimientos por el lector tanto tericos como prcticos.

Desarrollo

BLOQUE 1
LISTAS
Una Lista es una coleccin o secuencia de elementos dispuestos uno detrs de otro, en la que
cada elemento se conecta al siguiente por un enlace o referencia.

Existen varios tipos de Listas:

Lista Enlazada:

Es aquella que se recorre en una sola direccin es decir desde la Cabeza hasta el Final de la Lista.

Lista Circular:

Es aquella que recorre la lista desde la cabeza hasta el final de la lista y donde el ltimo elemento de la lista
est enlazado al primero.

Lista Doblemente Enlazada:

Es donde cada elemento est enlazado al siguiente y este al interior permitiendo recorrer de principio a Fin
y viceversa (desde el Final de la Lista hasta la cabeza).

Lista Doblemente Enlazada circulares:

Es donde cada elemento de la lista est enlazado con el siguiente y con el anterior al mismo, tambin donde
el primero est enlazado al ltimo y este al primero.

Aplicaciones de las Listas:

Para el ingreso de Datos de en una Empresa, para la creacin de productos que sigan un orden especifico,
etc.
UCACUE
BLOQUE 2
Pilas Colas y Recursividad

Implementacin de Pilas:

Todas las implementaciones de las listas que hemos descrito son vlidas para las pilas
ya que una pila junto con sus operaciones es un caso especial de una lista con sus
operaciones. An as conviene destacar que las operaciones de las pilas son ms
especficas y que por lo tanto la implementacin puede ser mejorada especialmente en
el caso de la implementacin matricial.

Operaciones con Pilas:

Las operaciones tpicas sobre las pilas estn implementadas en las


siguientes funciones y procedimientos.

pila CREAR (int tamanoMax)


{
pila P;

P = (pila) malloc(sizeof(tipoPila));
if (P == NULL)
error("No hay memoria suficiente");
P->Lmax = tamanoMax;
P->tope = -1;
P->elementos =(tElemento *) malloc(tamanoMax,sizeof(tElemento));
if (P->elementos == NULL)
error("No hay memoria suficiente.");
return P;
}

void DESTRUIR (pila *P)


{
free((*P)->elementos);
free(*P);
*P = NULL;
}

int VACIA (pila P)


{
return(P->tope == -1);
}

tElemento TOPE (pila P)


{
if (VACIA(P)) {
UCACUE
error("No hay elementos en la pila.");
return(P->elementos[P->tope]);
}

void POP (pila P)


{
if (VACIA(P)) {
error("No hay elementos en la pila.");
P->tope--;
}

void PUSH (tElemento x, pila P)


{
if (P->tope==P->Lmax-1) {
error("Pila llena");
p->tope++;
p->elementos[p->tope] = x;
}

Implementacin de Colas

Implementacin de colas basada en celdas enlazadas.

Igual que en el caso de las pilas, cualquier implementacin de listas es vlida


para las colas. No obstante, para aumentar la eficiencia de PONER_EN_COLA
es posible aprovechar el hecho de que las inserciones se efectan slo en el
extremo posterior de forma que en lugar de recorrer la lista de principio a fin cada
vez que desea hacer una insercin se puede mantener un apuntador al ltimo
elemento. Como en las listas de cualquier clase, tambin se mantiene un puntero
al frente de la lista. En las colas ese puntero es til para ejecutar mandatos del
tipo FRENTE o QUITA_DE_COLA. Utilizaremos al igual que para las listas, una
celda cabecera con el puntero frontal apuntndola con lo que nos permitir un
manejo ms cmodo. Grficamente, la estructura de la cola es tal y como
muestra la figura:

Operaciones con colas:


UCACUE
cola CREAR ()
{
cola C;

C = (tcola *) malloc(sizeof(tcola));
if (C == NULL)
error("Memoria insuficiente.");
C->ant = C->post = (celda *)malloc(sizeof(celda));
if (C->ant == NULL)
error("Memoria insuficiente.");
C->ant->siguiente = NULL;
return C;
}

void DESTRUIR (cola C)


{
while (!VACIA(C))
QUITAR_DE_COLA(C);
free(C->ant);
free(C);
}

int VACIA (cola C)


{
return(C->ant == C->post);
}

tElemento FRENTE (cola C)


{
if (VACIA(C)) {
error("Error: Cola Vacia.");
}
return(C->ant->siguiente->elemento);
}

void PONER_EN_COLA (tElemento x,cola C)


{
C->post->siguiente = (celda *) malloc(sizeof(celda));
if (C->post->siguiente == NULL)
error("Memoria insuficiente.");
C->post = C->post->siguiente;
C->post->elemento = x;
C->post->siguiente = NULL;
}

void QUITAR_DE_COLA (cola C)


{
celda *aux;

if (VACIA(C))
error("Cola vacia.");
aux = C->ant;
C->ant = C->ant->siguiente;
free(aux);
}

Colas Circulares
UCACUE
Una cola circular o anillo es una estructura de datos en la que los elementos estn de
forma circular y cada elemento tiene un sucesor y un predecesor. Los elementos pueden
consultarse, aadirse y eliminarse nicamente desde la cabeza del anillo que es una
posicin distinguida. Existen dos operaciones de rotaciones, una en cada sentido, de
manera que la cabeza del anillo pasa a ser el elemento sucesor, o el predecesor,
respectivamente, de la cabeza actual.

Colas dobles

es una estructura de datos lineal que permite insertar y eliminar elementos por ambos
extremos, podra verse como un mecanismo que permite aunar en una nica estructura
las funcionalidades de las pilas (estructuras LIFO) y las colas (estructuras FIFO), en
otras palabras, estas estructuras (pilas y colas) podran implementarse fcilmente con
una Cola Doble.

Recursividad:

Es una tcnica utilizada en programacin que nos permite que un bloque de


instrucciones se ejecute un cierto nmero de veces (el que nosotros determinemos). A
veces es algo complicado de entender, pero no os preocupis. Cuando veamos los
ejemplos estar clarsimo. En Java, como en otros muchos lenguajes, los mtodos
pueden llamarse a s mismos. Gracias a esto, podemos utilizar a nuestro favor la
recursividad en lugar de la iteracin para resolver determinados tipos de problemas.

Ordenamiento y Bsqueda Recursiva.

La ordenacin o clasificacin de datos (sort, en ingls) es una operacin consistente en disponer un


conjunto estructura de datos en algn determinado orden con respecto a uno de los campos de
elementos del conjunto. Por ejemplo, cada elemento del conjunto de datos de una gua telefnica tiene un
campo nombre, un campo direccin y un campo nmero de telfono; la gua telefnica est dispuesta en
orden alfabtico de nombres; los elementos numricos se pueden ordenar en orden creciente o decreciente
de acuerdo al valor numrico del elemento. En terminologa de ordenacin, el elemento por el cual est
ordenado un conjunto de datos (o se est buscando) se denomina clave. Una coleccin de datos
(estructura) puede ser almacenada en un archivo, un array (vector o tabla), un array de registros, una lista
enlazada o un rbol. Cuando los datos estn almacenados en un array, una lista enlazada o un rbol, se
denomina ordenacin interna. Si los datos estn almacenados en un archivo, el proceso de ordenacin se
llama ordenacin externa.

BLOQUE3
rboles y Grafos

Arboles N-Arios

Es una estructura de datos donde cada nodo posee un nmero indeterminado de hijos. Es una
estructura recursiva, y corresponde a la generalizacin de un rbol binario de cuyos nodos
pueden desprenderse mltiples arboles binarios. Las reglas que aplican a los arboles binarios
pueden ser fcilmente transpoladas a los arboles n-arios as como los consejos base.
UCACUE
Un rbol n-ario puede tomarse como un rbol de n elementos asociados a cada uno de sus
componentes. Se pueden encontrar 3 tipos de recorridos para este tipo de rbol:

in order.
pre order.
post order.

Arboles Binarios de bsqueda.

Un rbol binario de bsqueda tambin llamado BST (acrnimo del ingls Binary Search Tree) es
un tipo particular de rbol binario que presenta una estructura de datos en forma de rbol usada
en informtica.

Arboles B+

Es un tipo de estructura de datos de rbol, representa una coleccin de datos ordenados de


manera que se permite una insercin y borrado eficientes de elementos. Es un ndice, multinivel,
dinmico, con un lmite mximo y mnimo en el nmero de claves por nodo. Un rbol B+ es una
variacin de un rbol B.

Grafos Dirigidos

Consiste de un conjunto de vrtices V y un conjunto de arcos A. Los vrtices se


denominan nodos o puntos; los arcos tambin se conocen como aristas o lneas
dirigidas que representan que entre un par de vrtices existe una relacin unvoca.

Grafos no Dirigidos

Un grafo (grafo no dirigido) G consta de un conjunto V de vrtices o nodos y un conjunto E


de lados, (ramas o aristas) tales que cada lado (e E) est asociado a un par no ordenado
de vrtices. Si un lado e est asociado a un nico par de vrtices (v y w) se escribe e
= (v, w) o tambin se escribe e = (w, v).

Preguntas

Qu es una lista y como funciona en JAVA? 2 EJEMPLOS


Una Lista es una coleccin o secuencia de elementos dispuestos uno detrs de otro, en la que
cada elemento se conecta al siguiente por un enlace o referencia.
public class Nodo
{
protected int dato;
protected Nodo enlace;
public Nodo(int x)
{
dato = x;
enlace = null;
Clase lista
UCACUE
}
public Nodo(int x, Nodo n)
{
Dato = x;
Enlace = n;
}
public int getDato( )
{
return dato;
}
public Nodo getEnlace( )
{
return enlace;
}
public void setEnlace(Nodo enlace)
{
this.enlace = enlace;
}
}
A continuacin la clase lista:
package ListaEnteros;
public class Lista
{
private Nodo primero;
public Lista( )
{
primero = null;
}

Cul ES LA APLICACIN DE LISTAS EN JAVA?

DIFERENCIA ENTRE LISTAS COLAS Y RECURSVIDAD? 1 C/U


Listas: En una lista los datos pueden almacenarse (insertarse) en cualquier
orden, y eliminarse desde cualquier lugar. Es decir puedes insertar al comienzo,
al final, en el medio... y de la misma manera se puede eliminar.
Colas: Una Cola es una lista FIFO: First In, First Out. "Primero en Entrar, Primero
en Salir", en castellano. Es decir los elementos se ordenan desde un extremo (el
frente) y se van ordenando uno detrs del otro. El elemento que est en primer
UCACUE
lugar entonces se eliminar, y ahora el segundo pasar a ser el primero. La
representacin ms visual y que aclara esto lo puedes ver cada vez que haces
cola o fila para ser atendida en caja. Naturalmente, el ltimo en llegar, ser el
ltimo en salir.
Recursividad: Es una tcnica utilizada en programacin que nos permite que
un bloque de instrucciones se ejecute un cierto nmero de veces (el que nosotros
determinemos).

Qu ES UN ARBOL N-ARIO, B+ Y DE BUSQUEDA?


rbol N-Ario: Es una estructura de datos donde cada nodo posee un nmero indeterminado
de hijos. Es una estructura recursiva, y corresponde a la generalizacin de un rbol binario de
cuyos nodos pueden desprenderse mltiples arboles binarios.

rbol B+: Es un tipo de estructura de datos de rbol, representa una coleccin de datos
ordenados de manera que se permite una insercin y borrado eficientes de elementos.
rbol de Bsqueda: Es un rbol binario con la propiedad de que todos los elementos
almacenados en el subrbol izquierdo de cualquier nodo x son menores que el elemento
almacenado en x ,y todos los elementos almacenados en el subrbol derecho de x son
mayores que el elemento almacenado en x.

QU ES UN GRAFO DIRIGIDO Y NO DIRIGIDO?


Grafo Dirigido: Consiste de un conjunto de vrtices V y un conjunto de arcos A. Los
vrtices se denominan nodos o puntos; los arcos tambin se conocen como aristas o
lneas dirigidas que representan que entre un par de vrtices existe una relacin
unvoca.

Grafo No Dirigido: Un grafo (grafo no dirigido) G consta de un conjunto V de vrtices o


nodos y un conjunto E de lados, (ramas o aristas) tales que cada lado (e E) est asociado
a un par no ordenado de vrtices. Si un lado e est asociado a un nico par de vrtices
(v y w) se escribe e = (v, w) o tambin se escribe e = (w, v).

También podría gustarte