You are on page 1of 8

Definicin de estructura de Datos

Es una forma de organizar un conjunto de datos elementales (un dato elemental es la mnima informacin que se tiene en el sistema) con el objetivo de facilitar la manipulacin de estos datos como un todo o individualmente.

Tipo de estructura de datos


Las estructuras dinmicas Son estructuras que cuya dimensin puede crecer o disminuir durante la ejecucin del programa. Una estructura dinmica de datos es una coleccin de elementos llamados nodos. Al contrario que un array, que contiene espacio para almacenar un nmero fijo de elementos, una estructura dinmica de datos se ampla y contrae durante la ejecucin del programa.

Pila: Una pila (stack en ingls) es una lista ordinal o estructura de datos en la
que el modo de acceso a sus elementos es de tipo LIFO (del ingls Last In First Out, ltimo en entrar, primero en salir) que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el rea de informtica debido a su simplicidad y ordenacin implcita de la propia estructura.

Cola :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.

Struct cola { Tipo variable; Struct cola * sig; } *CAB=NULL, * AUX=NULL, *FIN=NULL

Listas:

Una lista es una estructura de datos secuencial. Una manera de

clasificarlas es por la forma de acceder al siguiente elemento: Listas enlazadas Listas doblemente enlazadas Listas circulares

Una lista enlazada o encadenada es una coleccin de elementos nodos, en donde cada uno contiene datos y un enlace o liga. Un nodo es una secuencia de caracteres en memoria dividida en campos (de cualquier tipo). Un nodo siempre contiene la direccin de memoria del siguiente nodo de informacin si este existe. Un apuntador es la direccin de memoria de un nodo La figura siguiente muestra la estructura de un nodo: El campo liga, que es de tipo puntero, es el que se usa para establecer la liga con el siguiente nodo de la lista. Si el nodo fuera el ltimo, este campo recibe como valor NIL (vaco). A continuacin se muestra el esquema de una lista : Operaciones en Listas Enlazadas

Las operaciones que podemos realizar sobre una lista enlazada son las siguientes: Recorrido. Esta operacin consiste en visitar cada uno de los nodos que forman la lista . Para recorrer todos los nodos de la lista, se comienza con el primero, se toma el valor del campo liga para avanzar al segundo nodo, el campo liga de este nodo nos dar la direccin del tercer nodo, y as sucesivamente. Insercin. Esta operacin consiste en agregar un nuevo nodo a la lista. Para esta operacin se pueden considerar tres casos: o Insertar un nodo al inicio. o Insertar un nodo antes o despus de cierto nodo. o Insertar un nodo al final. Borrado. La operacin de borrado consiste en quitar un nodo de la lista, redefiniendo las ligas que correspondan. Se pueden presentar cuatro casos: o Eliminar el primer nodo. o Eliminar el ltimo nodo. o Eliminar un nodo con cierta informacin. o Eliminar el nodo anterior o posterior al nodo cierta con informacin. Bsqueda. Esta operacin consiste en visitar cada uno de los nodos, tomando al campo liga como puntero al siguiente nodo a visitar. Listas Lineales En esta seccin se mostrarn algunos algoritmos sobre listas lineales sin nodo de cabecera y con nodo de cabecera. Una lista con nodo de cabecera es aquella en la que el primer nodo de la lista contendr en su campo dato algn valor que lo diference de los dems nodos (como : *, -, +, etc). Un ejemplo de lista con nodo de cabecera es el siguiente: En el caso de utilizar listas con nodo de cabecera, usaremos el apuntador CAB para hacer referencia a la cabeza de la lista. Para el caso de las listas sin nodo de cabecera, se usar la expresin TOP para referenciar al primer nodo de la lista, y TOP(dato), TOP(liga) para hacer referencia al dato almacenado y a la liga al siguiente nodo respectivamente.

Listas Dobles
Una lista doble , doblemente ligada es una coleccin de nodos en la cual cada nodo tiene dos punteros, uno de ellos apuntando a su predecesor (li) y otro a su sucesor(ld). Por medio de estos punteros se podr avanzar o retroceder a travs de la lista, segn se tomen las direcciones de uno u otro puntero. La estructura de un nodo en una lista doble es la siguiente: Existen dos tipos de listas doblemente ligadas: Listas dobles lineales. En este tipo de lista doble, tanto el puntero izquierdo del primer nodo como el derecho del ltimo nodo apuntan a NIL. Listas dobles circulares. En este tipo de lista doble, el puntero izquierdo del primer nodo apunta al ltimo nodo de la lista, y el puntero derecho del ltimo nodo apunta al primer nodo de la lista. Debido a que las listas dobles circulares son ms eficientes, los algoritmos que en esta seccin se traten sern sobre listas dobles circulares. En la figura siguiente se muestra un ejemplo de una lista doblemente ligada lineal que almacena nmeros: En la figura siguiente se muestra un ejemplo de una lista doblemente ligada circular que almacena nmeros: A continuacin mostraremos algunos algoritmos sobre listas enlazadas. Como ya se mencion, llamaremos li al puntero izquierdo y ld al puntero derecho, tambin usaremos el apuntador top para hacer referencia al primer nodo en la lista, y p para referenciar al nodo presente.

Listas Circulares
Las listas circulares tienen la caracterstica de que el ltimo elemento de la misma apunta al primero La siguiente figura es una representacin grfica de una lista circular. Enseguida se mostrarn los algoritmos ms comunes en listas circulares. Al igual que en las secciones anteriores, utilizaremos el apuntador top para hacer referencia al primer nodo en la lista.

Arboles:_

Es una estructura de datos ampliamente usada que imita la

forma de un rbol (un conjunto de nodos conectados). Un nodo es la unidad sobre la que se construye el rbol y puede tener cero o ms nodos hijos conectados a l. rbol Binarios rbol B

Recorrido de un rbol: inorden, preorden postorden

Clasificacin de Arboles Binarios


Existen cuatro tipos de rbol binario:. A. B. Distinto. A. B. Similares. A. B. Equivalentes. A. B. Completos. A continuacin se har una breve descripcin de los diferentes tipos de rbol binario as como un ejemplo de cada uno de ellos.

A. B. DISTINTO
Se dice que dos rboles binarios son distintos cuando sus estructuras son diferentes. Ejemplo:

A. B. SIMILARES
Dos arboles binarios son similares cuando sus estructuras son idnticas, pero la informacin que contienen sus nodos es diferente. Ejemplo:

A. B. EQUIVALENTES
Son aquellos arboles que son similares y que adems los nodos contienen la misma informacin. Ejemplo:

A. B. COMPLETOS
Son aquellos arboles en los que todos sus nodos excepto los del ultimo nivel, tiene dos hijos; el subarbol izquierdo y el subarbol derecho.

Recorrido de un Arbol Binario


Hay tres manera de recorrer un rbol : en inorden, preorden y postorden. Cada una de ellas tiene una secuencia distinta para analizar el rbol como se puede ver a continuacin: 1. INORDEN o Recorrer el subarbol izquierdo en inorden. o Examinar la raz. o Recorrer el subarbol derecho en inorden. 2. PREORDEN o Examinar la raz. o Recorrer el subarbol izquierdo en preorden. o recorrer el subarbol derecho en preorden. 3. POSTORDEN o Recorrer el subarbol izquierdo en postorden. o Recorrer el subarbol derecho en postorden. o Examinar la raz. A continuacin se muestra un ejemplo de los diferentes recorridos en un rbol binario. Inorden: GDBHEIACJKF

Preorden: ABDGEHICFJK Postorden: GDHIEBKJFCA

grafos:

Un grafo es un conjunto, no vaco, de objetos llamados vrtices (o

nodos) y una seleccin de pares de vrtices, llamados aristas que pueden ser orientados o no. un grafo se representa mediante (vrtices) conectados por (aristas). Caracterizacin de grafos: simples, conexos y complejos. Estructuras estticas Son aquellas en las que el tamao ocupado en memoria se define antes de que el programa se ejecute y no puede modificarse dicho tamao durante la ejecucin del programa. Estas estructuras estn implementadas en casi todos los lenguajes.

Array: Un arreglo (array) es un conjunto finito, ordenado de elementos(todos


los elementos del arreglo pueden ser identificados) y homogneos (todos los elementos del array son del mismo tipo). Los Arrays tambin son conocidos como matrices o tablas. vector[indice_1] [indice_2]...[indice_N] Estos elementos pueden ser datos elementales (entero, real, carcter,...), o bien otras estructuras de datos en donde a cada uno de esos elementos se le llama campo. Registro: Un registro se diferencia de un vector en que este es una coleccin de datos iguales, es decir, todos del mismo tipo, mientras que en una estructura los elementos que la componen, aunque podran serlo, no tiene porque ser del mismo tipo. typedef struct TipoNodo struct TipoNodo *sig; struct TipoNodo *ant; } TNodo; En este ejemplo se define el tipo de dato TNodo (o struct TipoNodo, seria equivalente) como una estructura (registro) que contiene un dato de tipo entero y dos punteros sig y ant (siguiente y anterior) que sirven para referenciar a otro registros del tipo TNodo

archive o fichero: Un archivo o fichero informtico es un conjunto de


bits almacenado en un dispositivo o archivos informticos; se llaman as porque son los equivalentes digitales de los archivos en tarjetas, papel. Un archivo es identificado por un nombre y la descripcin de la carpeta o directorio que lo contiene. Microfichas del entorno de oficina tradicional. Los archivos informticos facilitan una manera de organizar los recursos usados para almacenar permanentemente datos en un sistema informtico. Cadena: Una cadena de caracteres es una sucesin ordenada y finita de caracteres.

Solo uno de los 256 caracteres posibles puede almacenarse en un char a la vez. Es posible usar este tipo para El tipo de dato char posee una longitud de un Byte (8 bits), y se usa para almacenar caracteres. definir cadenas de caracteres y se puede hacer de dos formas. -char *cadena1, *cadena2, �; Donde char es el tipo y cadena1, cadena2, etc, son variables que apuntan a reas de memoria donde se almacenan cadenas de caracteres de longitud variable.-char cadena1[n]; o char cadena1[]; Define una cadena de caracteres llamada cadena1 de longitud n en el primer caso, y una cadena de longitud no definida en el segundo. Punteros: Los punteros son tambin llamados apuntadores. Son tipos de datos que permiten crear estructuras de datos dinmicas, las cuales pueden variar en tamao y memoria requerida. Las variables que se crean y se destruyen durante la ejecucin se llaman variables dinmicas o annimas. Para manipular un puntero como variable se utiliza un nombre, a la que apunta. Para trabajar con punteros existe un operados que precede * y un operados & que indica la direccin. Http://wikipedia.org/wiki/estructuradedatos-introduccion Http://wikipedia.org/wiki/estructuradinamucas Http://wikipedia.org/wiki/tipodeestructurasdedatos Http://wikipedia.org/wiki/pilas(informaticas)

Http://wikipedia.org/wiki/colas(informaticas) Http://wikipedia.org/wiki/listas(informaticas) Http://wikipedia.org/wiki/arboles(informaticas) Http://wikipedia.org/wiki/teoriadegrafos Luis Joyanes Aguilar, Http://wikipedia.org/wiki/registros(informaticos


Http://wikipedia.org/wiki/ficherosoarchivos(informaticos)

Http://wikipedia.org/wiki/cadenadecaracteres Http://mailxmail/unteros/introduccionallenguajec

You might also like