Estructuras de datos y algoritmos

Slides:



Advertisements
Presentaciones similares
5. Estructuras no lineales estáticas y dinámicas
Advertisements

PILA.
SOLUCIÓN DE PROBLEMAS Problema Solución A B S T R C I Ó N C O N R E I
ÁRBOLES EN C UNIVERSIDAD “ALONSO DE OJEDA” Facultad de Ingeniería
TDA LISTA ESTRUCTURAS DE DATOS.
Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
Listas enlazadas c++ Prof. Franklin Cedeño.
Programación II Listas
Estructura de Datos En C++
1 Extensión de un Estructura de Datos Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
Programación y Estructuras de Datos
Estructuras de datos y algoritmos
Operaciones sobre un árbol
9A9A9A9A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática.
Tratamiento de listas en Java
Tema 4 Árboles. Árbol sobre matriz.
Implementación de Listas
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Marzo 2007 Lenguajes Visuales Clase III.
Estructuras de Datos Especificación formal de Listas.
Programación II Colas Igor Santos Grueiro.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Colas y Listas Enlazadas
Genericidad Los datos de aplicaciones muy diferentes puede modelarse con frecuencia a partir de tipos de datos cuyas operaciones no dependen del tipo de.
L ISTAS E NLAZADAS No son mas que un conjunto o lista de objetos que a diferencia de los vectores, estas poseen la capacidad de crecer o decrecer. Por.
Slide 7-1 Copyright © 2003 Pearson Education, Inc. Figure: Estructuras de datos.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Estructuras dinámicas de datos, TAD Lista, parte 2
Igor Santos Grueiro. De este tipo de pilas NO vamos a hablar.
Listas circulares.
Estructuras de datos y algoritmos
ÁRBOLES BINARIOS DE BÚSQUEDA
C++ LISTAS C++ 11/04/2017 Ing. Edgar Ruiz Lizama.
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
7.  El TDA Diccionario.
Estructura de Datos y Algoritmos
Estructura de Datos En C++
Árboles binarios de búsqueda
Arboles M.C. José Andrés Vázquez FCC/BUAP
Listas enlazadas.
ARBOLES ESTRUCTURAS DE DATOS.
Pilas y Colas Estructuras de Datos.
Árboles Binarios Estructuras de Datos.
LISTA DOBLEMENTE ENLAZADA
Dinamismo y Contenedores Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires (C++ Avanzado) Depto. de Computación Algoritmos y Estructuras.
Universitarios: Ricardo Gonzales Jimenez Wilfredo Coca Reinaldo Yohan Docente: Lic. Israel Torrez Valverde Tema: Listas doblemente Enlazadas.
Grafos..
Listas Ligadas Simples. Definíción I  Es, en sencillas palabras. un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la.
Unidad 4: LISTAS.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Punteros, referencias Listas enlazadas Arboles
Estructuras de datos Fundamentos de análisis y diseño de algoritmos.
INSTITUTO TECNOLOGICO DE APIZACO
Algoritmos y Estructuras de datos Listas Doblemente enlazadas
 Introducción  Conceptos El equipo demostrara y mostrara los conceptos, definición y funcionamiento de una las “listas doblemente enlazadas y circulares”
Árboles Binarios de Búsqueda (ABB)
R ECORRIDO DE ÁRBOLES BINARIOS POR AMPLITUD O POR NIVELES Elaborado por: Luis Alberto Fonseca Esquivel Eduardo Acosta Casillas.
Pilas y Colas Cursos Propedéuticos 2006 Programación y Estructuras de Datos Manuel Montes Claudia Feregrino
Listas. Utilización de un TAD Lista. Interfaz del TAD LISTA public interface Lista { void crearNodo (); /*Crea un nuevo nodo en el TadLista*/ int devolverClave.
M.C. Meliza Contreras González
Laboratorio de programación
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
Laboratorio de programación Luisa Fernanda Rincón Pérez
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
Listas Dinámicas.
1 ListaUna Lista se define como una serie de N elementos E 1, E 2,..., E N, ordenados de manera consecutiva, es decir, el elemento E k (que se denomina.
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada TIPOS ABSTRACTOS DE DATOS TAD Tema: TIPOS ABSTRACTOS DE DATOS TAD Subtema: LISTAS.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Estructuras de datos y algoritmos
Transcripción de la presentación:

Estructuras de datos y algoritmos Oscar Bedoya. oscarbed@eisc.univalle.edu.co http://eisc.univalle.edu.co/~oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Lista circular Definición Una lista circular es una colección de elementos llamados nodos, organizados de tal manera que el siguiente del ultimo nodo apunta al nodo cabecera

Lista circular 23 51 dato siguiente dato siguiente dato siguiente El campo siguiente del ultimo nodo, aquel cuyo dato es 51, apunta al nodo cabecera

Lista circular Definición Una lista circular es una estructura de datos dinámica que permite almacenar cualquier cantidad de nodos. Tiene la ventaja de que procesos de búsqueda o de manipulación de los datos que requieran recorrer la lista completa más de una vez se realizan eficientemente

Lista circular Definición Las operaciones sobre una lista enlazada son: Crear lista circular Insertar nodo al inicio Eliminar nodo al inicio Imprimir datos Es una lista circular vacía?

Lista circular Crear lista circular Al crear una lista circular, se crea el nodo cabecera. El nodo cabecera tiene como dato null y como siguiente null.

Insertar nodo al inicio( La lista circular está vacía) Se crea un nuevo nodo con el dato que se desee colocar y con siguiente al nodo cabecera El campo siguiente del nodo cabecera pasa de ser null a ser el nodo que estamos insertado W

Insertar nodo al inicio( La lista no está vacía) Lista circular Insertar nodo al inicio( La lista no está vacía) W A W Se crea un nuevo nodo con el dato que se desee colocar y en su campo siguiente se establece el siguiente del nodo cabecera Al nodo cabecera se le asigna como siguiente el nodo que estamos insertando

Eliminar nodo al inicio(La lista circular tiene mas de un nodo) W W Al nodo cabecera se le asigna como siguiente, el siguiente del primer nodo

Eliminar nodo al inicio(La lista circular tiene un nodo) W Al campo siguiente del nodo cabecera se le asigna null

Lista circular Imprimir datos

Lista circular Está una lista vacía? Cuando la lista está vacía el campo siguiente de la cabecera es null

Lista circular class Nodo{ Object dato; Nodo siguiente; Nodo(Object o) dato=o; siguiente=null; } Nodo(Object o, Nodo n) siguiente=n; Cada nodo se representa por medio de dos campos: Campo dato: contiene el valor del nodo Campo siguiente: indica cuál es el nodo con el que se enlaza

Al crear una lista circular, se crea el nodo cabecera. Crear lista circular Al crear una lista circular, se crea el nodo cabecera. El nodo cabecera tiene como dato null y como siguiente null. class ListaC{ Nodo cabecera; ListaC() { cabecera=new Nodo(null); }

Está una lista circular vacía? public boolean estaVacia(){ if (cabecera.siguiente==null) { return true; } else return false; Está una lista circular vacía? Cuando la lista está vacía el campo siguiente de la cabecera es null

void insertar(Object o) { Nodo nuevo=new Nodo(null); Lista circular void insertar(Object o) { Nodo nuevo=new Nodo(null); if ( estaVacia() ) nuevo=new Nodo(o); nuevo.siguiente=cabecera; cabecera.siguiente=nuevo; } Insertar nodo al inicio ( La lista circular está vacía) Se crea un nuevo nodo con el dato que se desee colocar y con siguiente al nodo cabecera El campo siguiente del nodo cabecera pasa de ser null a ser el nodo que estamos insertado

Lista circular void insertar(Object o) { Nodo nuevo=new Nodo(null); if ( estaVacia() ) nuevo=new Nodo(o); nuevo.siguiente=cabecera; cabecera.siguiente=nuevo; } else nuevo.siguiente=cabecera.siguiente; Insertar nodo al inicio ( La lista circular no está vacía) Se crea un nuevo nodo con el dato que se desee colocar y en su campo siguiente se establece el siguiente del nodo cabecera Al nodo cabecera se le asigna como siguiente el nodo que estamos insertando

Lista circular public void eliminar() { Nodo borrar=cabecera.siguiente; if (borrar.siguiente==cabecera) cabecera.siguiente=null; else{ cabecera.siguiente=borrar.siguiente; } Eliminar nodo al inicio Al campo siguiente del nodo cabecera se le asigna null, si solo hay un nodo Al nodo cabecera se le asigna como siguiente, el siguiente del primer nodo, si la lista circular tiene más de un nodo