ListasProgramación II
Definición y CaracterísticasLa forma más simple de estructura dinámica es la lista abierta o vinculada.Una lista es una colección de elementos llamados generalmente nodos, se relaciona por punteros o direcciones a otros nodos.Un nodo lo representaremos de la siguiente manera:DATO
El dato es la información que se necesite para el proceso y la liga es de tipo puntero y es utilizada para establecer el enlace con otros nodos.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 vale NULL.DATODATO
En las listas abiertas existe un nodo especial: el primero. Normalmente diremos que nuestra lista es un puntero a ese primer nodo y llamaremos a ese nodo la cabeza de la lista. Eso es porque mediante ese único puntero podemos acceder a toda la lista.NULLListaDATODATODATODATO
El nodo típico para construir listas tiene esta forma:struct nodo { int dato; struct nodo *siguiente; 	};
Operaciones básicasAñadir o insertar elementos.Buscar o localizar elementos.Borrar elementos.Moverse a través de una lista, anterior, siguiente, primero.
Insertar elementos en una listaInsertar un elemento en una lista vacíaListaNULLNodo12DATONULLDATOLista
Insertar un elemento en la última posición de una listaLista……NULLInsertar al finalNodoDATOLista……NULLDATODATODATODATODATODATODATODATO312ultimo nodoDATONodoNULL
Moverse a través de una listaPara recorrer una lista procederemos siempre del mismo modo, usaremos un puntero auxiliar como índice:Asignamos al puntero índice el valor de Lista.Abriremos un ciclo que al menos debe tener una condición, que el índice no sea NULL.Dentro del ciclo asignaremos al índice el valor del nodo siguiente al índice actual.
Eliminar elementos en una listaEliminar el primer nodo de una listaLista……NodoEliminar el primer nodo23DATODATODATODATO……ListaLista1Nodo
Eliminar un nodo  cualquiera de una listaLista……NodoAnterior23……ListaDATODATODATODATODATODATODATODATO1NodoAnteriorAnterior
Ejemplo 1Construir un programa que maneje una lista ligada con las siguientes características:Permita agregar un elemento al final de la lista.Eliminar un elemento.Mostrar toda la lista.
PilasProgramación II
DefiniciónEl concepto de pila es que aquel elemento que se pueda agregar o sacar de un arreglo o lista sea a través de un solo extremo, también son llamados LIFO (Last In, FirstOut).La pila debe de tener un valor máximo de elementos conocido y un valor de elementos cargados para poder establecer control de posición y limites.Último elementoMax elementosCantidad cargadaPrimer elemento
Ejemplo 2Desarrollar un programa que tenga las siguientes características:Una estructura (llamada pilcol) y que contenga:Un dato para la posición (tipo entero)Un arreglo para la pila (tipo char, tamaño 10)Una función para agregar un elemento a la pila, la cual llamaremos mete_pila.Una función para obtener un elemento de la pila, la cual llamaremos saca_pila.
ColasProgramación II
DefiniciónEs una lista de elementos en la que estos se introducen por un extremo y se eliminan por el otro. Otro modo de llamar a las colas es como arreglos FIFO (First In-FirstOut).ENTRASALEULTIMOPRIMERO
Ejemplo 3Desarrollar un programa que tenga las siguientes características:Una estructura (llamada pilcol) y que contenga:Un dato para la posición (tipo entero)Un arreglo para la pila (tipo char, tamaño 10)Una función para agregar un elemento a la cola, la cual llamaremos mete_cola.Una función para obtener un elemento de la cola, la cual llamaremos saca_cola.

Listas

  • 1.
  • 2.
    Definición y CaracterísticasLaforma más simple de estructura dinámica es la lista abierta o vinculada.Una lista es una colección de elementos llamados generalmente nodos, se relaciona por punteros o direcciones a otros nodos.Un nodo lo representaremos de la siguiente manera:DATO
  • 3.
    El dato esla información que se necesite para el proceso y la liga es de tipo puntero y es utilizada para establecer el enlace con otros nodos.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 vale NULL.DATODATO
  • 4.
    En las listasabiertas existe un nodo especial: el primero. Normalmente diremos que nuestra lista es un puntero a ese primer nodo y llamaremos a ese nodo la cabeza de la lista. Eso es porque mediante ese único puntero podemos acceder a toda la lista.NULLListaDATODATODATODATO
  • 5.
    El nodo típicopara construir listas tiene esta forma:struct nodo { int dato; struct nodo *siguiente; };
  • 6.
    Operaciones básicasAñadir oinsertar elementos.Buscar o localizar elementos.Borrar elementos.Moverse a través de una lista, anterior, siguiente, primero.
  • 7.
    Insertar elementos enuna listaInsertar un elemento en una lista vacíaListaNULLNodo12DATONULLDATOLista
  • 8.
    Insertar un elementoen la última posición de una listaLista……NULLInsertar al finalNodoDATOLista……NULLDATODATODATODATODATODATODATODATO312ultimo nodoDATONodoNULL
  • 9.
    Moverse a travésde una listaPara recorrer una lista procederemos siempre del mismo modo, usaremos un puntero auxiliar como índice:Asignamos al puntero índice el valor de Lista.Abriremos un ciclo que al menos debe tener una condición, que el índice no sea NULL.Dentro del ciclo asignaremos al índice el valor del nodo siguiente al índice actual.
  • 10.
    Eliminar elementos enuna listaEliminar el primer nodo de una listaLista……NodoEliminar el primer nodo23DATODATODATODATO……ListaLista1Nodo
  • 11.
    Eliminar un nodo cualquiera de una listaLista……NodoAnterior23……ListaDATODATODATODATODATODATODATODATO1NodoAnteriorAnterior
  • 12.
    Ejemplo 1Construir unprograma que maneje una lista ligada con las siguientes características:Permita agregar un elemento al final de la lista.Eliminar un elemento.Mostrar toda la lista.
  • 13.
  • 14.
    DefiniciónEl concepto depila es que aquel elemento que se pueda agregar o sacar de un arreglo o lista sea a través de un solo extremo, también son llamados LIFO (Last In, FirstOut).La pila debe de tener un valor máximo de elementos conocido y un valor de elementos cargados para poder establecer control de posición y limites.Último elementoMax elementosCantidad cargadaPrimer elemento
  • 15.
    Ejemplo 2Desarrollar unprograma que tenga las siguientes características:Una estructura (llamada pilcol) y que contenga:Un dato para la posición (tipo entero)Un arreglo para la pila (tipo char, tamaño 10)Una función para agregar un elemento a la pila, la cual llamaremos mete_pila.Una función para obtener un elemento de la pila, la cual llamaremos saca_pila.
  • 16.
  • 17.
    DefiniciónEs una listade elementos en la que estos se introducen por un extremo y se eliminan por el otro. Otro modo de llamar a las colas es como arreglos FIFO (First In-FirstOut).ENTRASALEULTIMOPRIMERO
  • 18.
    Ejemplo 3Desarrollar unprograma que tenga las siguientes características:Una estructura (llamada pilcol) y que contenga:Un dato para la posición (tipo entero)Un arreglo para la pila (tipo char, tamaño 10)Una función para agregar un elemento a la cola, la cual llamaremos mete_cola.Una función para obtener un elemento de la cola, la cual llamaremos saca_cola.