ESTRUCTURA DE DATOS
ELABORADO POR:
BR. WILKINS SILVA
C.I.: V-19.098.288
SECCIN: 47-A
INDICE
1.- ARREGLOS
2.- PILAS
3.- COLAS
4.- LISTAS ENLAZADAS
DESGLOSE
1.- ARREGLOS:
Matriz[0][2],
...,
Matriz[1][0],
Matriz[1]
Otro Ej;
/*
Utilizacin de arreglos.
Programa que cuenta cuntas veces se repite cada dgito,
cada carcter separador, y otros caracteres.
*/
#include <stdio.h>
#define ND 10
int main()
{
int c, i, nWhite = 0, nOther = 0, nDigit[ND];
for(i = 0; i < ND; i++)
nDigit[i] = 0;
while((c = getchar()) != EOF)
if(c >= '0' && c <= '9')
nDigit[c - '0']++;
else
if(c == ' ' || c == '\n' || c == '\t')
nWhite++;
else
nOther++;
for(i = 0; i < ND; i++)
printf("Dgito %d: %d\n",i,nDigit[i]);
2. - PILAS
Una PILA es una estructura de datos homognea (elementos del mismo tipo),
secuencial y de amao variable. Slo es posible un modo de acceso a esta
estructura: a travs de la cabeza de la pila. De este modo podemos aadir un
elemento a la cabeza de la pila o extraer un elemento de la cabeza de la pila.
Debido a que las operaciones de extraccin e insercin se realizan por el
mismo extremo, el ltimo elemento en ser aadido ser el primero en ser
extrado; por ello a estas estructuras se las conoce con el nombre de LIFO
(last-in, first-out; ltimo en entrar, primero en salir).
Otras operaciones posibles sobre la pila son la creacin de una pila vaca, la
interrogacin de la misma para determinar si contiene o no algn elemento y la
destruccin de la pila.
Para implementar una pila como una estructura dinmica de datos se usa una
lista enlazada, las operaciones de extraccin e insercin en la lista (pila) se
hacen siempre sobre la cabeza de la misma.
Ej:
#ifndef _MPila_h_
#define _MPila_h_
#include "MCadena.h"
namespace MPila
{
using namespace MCadena;
typedef struct TNodo *TPila;
struct TNodo
{
TCadena val;
TPila sig;
};
typedef enum { NoError, ErrorPilaLLena,
ErrorPilaVacia} TError;
TPila CrearPila();
void DestruirPila(TPila &p);
void MeterPila(TPila &p, TCadena x, TError &error);
void SacarPila(TPila &p, TCadena &x, TError &error);
bool PilaLlena(TPila p);
bool PilaVacia(TPila p);
}
Otro Ej:
public class Pila {
NodoPila _ultimo;
//Crea una pila
public Pila() {
_ultimo = null;
}
//Mete un objeto en la pila
public void push(Object o) {
NodoPila nuevo;
nuevo = new NodoPila(o, _ultimo);
_ultimo = nuevo;
}
imo objeto de la pila
public Object pop() {
Object resultado;
resultado = null;
if (_ultimo != null) {
resultado = _ultimo.obtenerContenido();
_ultimo = _ultimo.obtenerAnterior();
}
return resultado;
}
//esto es una clase interna
class NodoPila {
Object _contenido;
NodoPila _anterior;
public NodoPila(Object contenido, NodoPila anterior) {
_contenido = contenido;
_anterior = anterior;
}
public NodoPila obtenerAnterior() {
return _anterior;
3.- COLAS
Una COLA es una estructura de datos, caracterizada por ser una secuencia de
elementos en la que la operacin de insercin push se realiza por un extremo y
la operacin de extraccin pop por el otro. Tambin se le llama estructura FIFO
(del ingls First In First Out), debido a que el primer elemento en entrar ser
tambin el primero en salir.
El tipo cola representa la idea que tenemos de cola en la vida real. La cola para
subir al autobs est compuesta de elementos (personas), que dispone de dos
extremos comienzo y fin. Por el comienzo se extraer un elemento cuando
haya comprado el billete para su viaje, y si llega una nueva persona con
intencin de usar el autobs, tendr que colocarse al final y esperar que todos
los elementos situados antes que l abandonen la cola.
4.- LISTAS ENLAZADAS
La forma ms simple de estructura dinmica es la lista enlazada (lista abierta o
lista ligada). En esta forma los nodos se organizan de modo que cada uno
apunta al siguiente, y el ltimo no apunta a nada, es decir, el puntero del nodo
siguiente del ltimo nodo toma el valor nulo (NULL).
En las listas abiertas existe un nodo especial: el primero, ese nodo deber
poder ser referenciado directamente en cualquier momento (normalmente con
una variable de tipo puntero). Esa referencia al primer nodo es muy importante
ya que mediante ella podemos acceder a toda la lista.