Listas

2,244 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,244
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
40
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Listas

  1. 1. Listas<br />Programación II<br />
  2. 2. Definición y Características<br />La forma más simple de estructura dinámica es la lista abierta o vinculada.<br />Una lista es una colección de elementos llamados generalmente nodos, se relaciona por punteros o direcciones a otros nodos.<br />Un nodo lo representaremos de la siguiente manera:<br />DATO<br />
  3. 3. 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.<br />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.<br />DATO<br />DATO<br />
  4. 4. 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.<br />NULL<br />Lista<br />DATO<br />DATO<br />DATO<br />DATO<br />
  5. 5. El nodo típico para construir listas tiene esta forma:<br />struct nodo { <br />int dato; <br />struct nodo *siguiente; <br /> };<br />
  6. 6. Operaciones básicas<br />Añadir o insertar elementos.<br />Buscar o localizar elementos.<br />Borrar elementos.<br />Moverse a través de una lista, anterior, siguiente, primero.<br />
  7. 7. Insertar elementos en una lista<br />Insertar un elemento en una lista vacía<br />Lista<br />NULL<br />Nodo<br />1<br />2<br />DATO<br />NULL<br />DATO<br />Lista<br />
  8. 8. Insertar un elemento en la última posición de una lista<br />Lista<br />……<br />NULL<br />Insertar al final<br />Nodo<br />DATO<br />Lista<br />……<br />NULL<br />DATO<br />DATO<br />DATO<br />DATO<br />DATO<br />DATO<br />DATO<br />DATO<br />3<br />1<br />2<br />ultimo nodo<br />DATO<br />Nodo<br />NULL<br />
  9. 9. Moverse a través de una lista<br />Para recorrer una lista procederemos siempre del mismo modo, usaremos un puntero auxiliar como índice:<br />Asignamos al puntero índice el valor de Lista.<br />Abriremos un ciclo que al menos debe tener una condición, que el índice no sea NULL.<br />Dentro del ciclo asignaremos al índice el valor del nodo siguiente al índice actual.<br />
  10. 10. Eliminar elementos en una lista<br />Eliminar el primer nodo de una lista<br />Lista<br />……<br />Nodo<br />Eliminar el primer nodo<br />2<br />3<br />DATO<br />DATO<br />DATO<br />DATO<br />……<br />Lista<br />Lista<br />1<br />Nodo<br />
  11. 11. Eliminar un nodo cualquiera de una lista<br />Lista<br />……<br />Nodo<br />Anterior<br />2<br />3<br />……<br />Lista<br />DATO<br />DATO<br />DATO<br />DATO<br />DATO<br />DATO<br />DATO<br />DATO<br />1<br />Nodo<br />Anterior<br />Anterior<br />
  12. 12. Ejemplo 1<br />Construir un programa que maneje una lista ligada con las siguientes características:<br />Permita agregar un elemento al final de la lista.<br />Eliminar un elemento.<br />Mostrar toda la lista.<br />
  13. 13. Pilas<br />Programación II<br />
  14. 14. Definición<br />El 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).<br />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.<br />Último elemento<br />Max elementos<br />Cantidad cargada<br />Primer elemento<br />
  15. 15. Ejemplo 2<br />Desarrollar un programa que tenga las siguientes características:<br />Una estructura (llamada pilcol) y que contenga:<br />Un dato para la posición (tipo entero)<br />Un arreglo para la pila (tipo char, tamaño 10)<br />Una función para agregar un elemento a la pila, la cual llamaremos mete_pila.<br />Una función para obtener un elemento de la pila, la cual llamaremos saca_pila.<br />
  16. 16. Colas<br />Programación II<br />
  17. 17. Definición<br />Es 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).<br />ENTRA<br />SALE<br />ULTIMO<br />PRIMERO<br />
  18. 18. Ejemplo 3<br />Desarrollar un programa que tenga las siguientes características:<br />Una estructura (llamada pilcol) y que contenga:<br />Un dato para la posición (tipo entero)<br />Un arreglo para la pila (tipo char, tamaño 10)<br />Una función para agregar un elemento a la cola, la cual llamaremos mete_cola.<br />Una función para obtener un elemento de la cola, la cual llamaremos saca_cola.<br />

×