SlideShare une entreprise Scribd logo
1  sur  33
TDA LISTA ESTRUCTURAS DE DATOS
OBJETIVOS ,[object Object],[object Object],[object Object],[object Object]
LISTAS: DEFINICION ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TIPOS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LISTAS SIMPLES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LISTA SIMPLE: NIVEL LOGICO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<listaSimple> ::= <comienzo> + {<ref_nodo>} + <final> <comienzo>  ::= <enlace> <final>  ::= <enlace>
TDA NODO: NIVEL LOGICO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<nodo>   ::= <contenido> + <enlace> <contenido>  ::= <dato>{<dato>} <enlace>  ::= <referencia_nodo> | <referencia_invalida>
LISTAS SIMPLES: NIVEL DE IMPLEMENTACION ,[object Object],[object Object],[object Object],[object Object],[object Object]
IMPLEMENTACION CONTIGUA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],En uso Desperdicio 25 Al insertarse un nuevo elemento, en una cierta posición, todos los elementos restantes ruedan 10 0 5 1 8 2 2 3 31 4 5 6 7 8 25 3 2 4 5 6 7 8 31
CONTIGUAS: OPERACIONES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CONTIGUAS: DECLARACION ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],typedef struct{ int ultimo; ArrayU Elementos; }LSCont; Elementos 10 0 5 1 8 2 25 3 2 4 5 6 7 8 31 header=0 MAX last
CONTIGUA: BASICAS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],bool LSCont_EstaVacia(LSCont L){ return(L.ultimo<0); } bool  LSCont_ EstaLlena( LSCont  L){ return (L.ultimo ==  ArrayU_Tamanio(L.Elementol)-1); } El índice del último elemento debe ser un índice inválido, un valor negativo. No importara que el arreglo tenga elementos pues no serán tomados en cuenta. -1 MAX-1 Si la lista está llena es porque el índice del último ha llegado al verdadero último índice posible en el arreglo: MAX -1 0 1 2 3 4 5 6 7 8 9 last 0 1 2 3 4 5 6 7 8 9 last
CONTIGUA: BUSQUEDA int LSCont_BuscarNodo(LSCont L, Generico G,  Generico_Comparacion fn) { int i; Generico elemento; for(i = 0; i <=L.ultimo;i++){ elemento = ArrayU_ElemC(L.Elementos, i); if(f(elemento, G) == 0) return (i) } return(-1); }
CONTIGUA: INSERTAR bool LSCont_Insertar(LSCont *L, int P, Generico G){ int i,  Generico ele1, ele2; if(LSCont_EstaLlena(L)) return FALSE; if(P<=-1) return FALSE; //MOVER TODOS for(i = L->ultimo; i >=P ;i--){ ele1 = ArrayU_ElemC(L->Elementos,i); ArrayU_ElemM(L->Elementos,i+1, ele1); } ArrayU_ElemM(L->Elementos, 0, G); L->utlimo ++; return TRUE; } bool LSCont_InsertarInicio( LSCont  *L, Generico G){ int i; Generico ele1, ele2; //No insertar si ya esta llena if(LSCont_EstaLlena(L)) return FALSE; //Mover todo hacia delante for(i = L->ultimo; i >=0 ;i--){ ele1 = ArrayU_ElemC(L->Elementos,i); ArrayU_ElemM(L->Elementos,i+1, ele1); } ArrayU_ElemM(L->Elementos, 0, G); L->ultimo++; return(TRUE); } 9 9 4 5 6 7 8 9 0 1 2 8 3 5 1 10 1 2 3 8 4 5 1 10 0 9 4 5 6 7 8 9 0 1 2 8 3 5 1 10 last last last last 1 2 3 8 4 5 1 1 1 9
CONTIGUA: SACAR Generico LSCont_EliminarNodo(LSCont *L, int P){ int i; Generico ele1; if(LSCont_EstaVacia(L)) return FALSE; if(P<=-1) return FALSE //RETROCEDER TODOS for(i = P; i < L->ultimo;i++){ ele1 = ArrayU_ElemC(L->Elementos, i); ArrayU_ElemM(L->Elementos, i+1, ele1); } ele1 = ArrayU_ElemC(L->Elementos, L->last); L->last --; return ele1; } ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Eliminar por Info, dada una cierta información, buscar el elemento que la tenga y eliminarlo 4 5 6 7 8 9 0 1 2 8 3 5 1 10 0 1 2 8 3 8 5 10 3 4 5 6 7 8 last last
LSE: LISTAS SIMPLES ENLAZADAS ,[object Object],[object Object],[object Object],[object Object],[object Object],25 Contenido Enlace NODO A NODO B 10 5 8 2 31 25 C S 2 31 25 C S
TDA LSE_NODO: NIVEL DE IMPLEMENTACION ,[object Object],[object Object],[object Object],[object Object]
TDA LSE_NODO: OPERACIONES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TDA LSE_NODO: DECLARACION ,[object Object],[object Object],[object Object],typedef struct T LSE_Nodo { Generico G; struct T LSE_Nodo  *sig; }  LSE_ Nodo; typedef  LSE_Nodo  *  LSE_NodoPtr ;
LSE_NODO: CREAR Y DESTRUIR ,[object Object],[object Object],LSE_nodo *LSE_CrearNodo(Generico G) { LSE_nodo *p; p = (LSE_nodo *)malloc(sizeof(LSE_nodo)); if(p) { p->G = G; p->sig = NULL; } return  p; } void LSE_EliminarNodo(LSE_nodo *p) { if(p) { free(p); p = NULL; } }
LSE: NIVEL DE IMPLEMENTACION ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LSE: OPERACIONES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LSE: DECLARACIÓN ,[object Object],[object Object],[object Object],typedef struct{   LSE_Nodo  *header;   LSE_Nodo  *last; }LSE; typedef  LSE_Nodo  * LSE;
LSE: CREAR y DESTRUIR ,[object Object],[object Object],void LSE_Vaciar(LSE *L){ LSE_nodo *p; while(!LSE_EstaVacia(*L)){ p = LSE_SacarNodoFin(L); LSE_Nodo_Eliminar(p); } } LSE *LSE_CrearLista(){ LSE *lnueva; lnueva = malloc(sizeof(LSE)); lnueva->header = lnueva->last = NULL; return lnueva; } header last
LSE: BUSQUEDA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],LSE_nodo *LSE_BuscarNodo(LSE L,  Generico G,  Generico_fnComparar f){ LSE_nodo *p; for(p = L.header; p!= NULL; p = LSE_Nodo_Siguiente(p)){ if(f(LSE_Nodo_Contenido(p),G) ==0) return(p); } return(NULL); } Busco 25 Busco 30 Recomendación: Usemos el  comportamiento  de LSE_Nodo, no el  estado 10 5 8 2 31 25 last header p p p p p p p p p p p
LSE: ANTERIOR ,[object Object],[object Object],[object Object],[object Object],LSE_nodo * LSE_Anterior(LSE L, LSE_nodo *p){ LSE_nodo *q; if(LSE_EstaVacia(L)) return NULL; if(L.header == p) return NULL; for(q=L.header; q!=NULL;q=q->sig){ if(q->sig ==p) return(q); } return(NULL); } La posición p es la de un nodo fuera de la lista Ejemplo al usar el estado de LSE_Nodo 10 5 8 2 31 25 last header p q q q 7 p q q q q q q q
LSE: PRIMERO Y ULTIMO ,[object Object],[object Object],LSE_nodo *LSE_NodoInicio(LSE L){ return (L.header); } LSE_nodo *LSE_NodoFin(LSE L){ return (L.last); }
LSE: INSERTAR ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
INSERCION AL INICIO/FINAL bool LSE_InsertarNodoInicio(LSE *L, LSE_nodo *nuevo){ if (!nuevo) return FALSE; if(LSE_EstaVacia(*L)){ L->header = L->last = nuevo; } else{ LSE_Nodo_ModificarEnlace( nuevo, L->header); L->header = nuevo; } return(TRUE); } bool LSE_InsertarNodoFin(LSE *L, LSE_nodo *nuevo){ if(!nuevo) return FALSE; if(LSE_EstaVacia(*L)){ L->header = L->last = nuevo; } else{ LSE_Nodo_ModificarEnlace(L->last,, nuevo); L->last = nuevo; } return(TRUE); } nuevo->sig = header; header = nuevo; last->sig = nuevo; last = nuevo; Si la lista esta vacía, tanto header como last apuntan al nuevo nodo Si no, si es al inicio el nuevo header, es el nuevo nodo Si no, si es al final, el nuevo last es el nuevo nodo 10 5 8 2 31 25 last header 9 nuevo header 18 nuevo last
INSERTAR EN MEDIO ,[object Object],[object Object],[object Object],[object Object],[object Object],bool LSE_Insertar(LSE *L,  LSE_nodo *p,  LSE_nodo *nuevo){ if(L->last==p){//Insertar al final return(LSE_InsertarNodoFin(L, nuevo)); }else{ if(!p  || ! LSE_ExisteNodo(*L,p))  return FALSE; if(LSE_EstaVacia(*L)) L->header = L->last = nuevo; else{ LSE_Nodo_ModificarEnlace( nuevo, LSE_Nodo_Siguiente(p)); LSE_Nodo_ModificarEnlace(p, nuevo); } } return(TRUE); } Nuevo->sig = p->sig; p->sig = nuevo; header = last = nuevo: 10 5 8 2 31 25 header last p 18 nuevo header last 18 nuevo header last
LSE: SACAR DE LA LISTA ,[object Object],LSE_nodo *LSE_SacarNodoInicio(LSE *L){ LSE_nodo *tmp = L->header; if(LSE_EstaVacia(*L)) return NULL; if(L->header == L->last) LSE_InicializarLista(L); else { L->header = L->header->sig; } return(tmp); } LSE_nodo *LSE_SacarNodoFin(LSE *L){ LSE_nodo *tmp=L->header; if(LSE_EstaVacia(*L)) return NULL; if(L->header == L->last) LSE_InicializarLista(L); else{ tmp = L->last; L->last = LSE_Anterior(*L, L->last); L->last->sig = NULL; } return(tmp); } Tmp = header; Header = header->sig; free(tmp); tmp = last; Last = Anterior(Last); free(tmp); Last->sig = NULL; 10 5 8 2 31 25 header last tmp header tmp last
LSE: SACAR JUSTO UN NODO ,[object Object],[object Object],[object Object],bool LSE_EliminarxPos(LSE *L, LSE_nodo *p){ LSE_nodo *p_ant; if(LSE_EstaVacia(*L)) return 0; if(!p || !LSE_ExisteNodo(*L, p))  return FALSE; if(p==L->header) LSE_SacarNodoInicio(L); else if(p == L->last) LSE_SacarNodoFin(L); else{ p_ant = LSE_Anterior(*L,p); p_ant->sig = p->sig; p->sig = NULL; } return(TRUE); } p_ant = Anterior(p); p_ant->sig = p->sig; free(p); 10 5 8 2 31 25 header last p pant
VISUALIZAR ,[object Object],void LSE_Recorrer(LSE L, Generico_fnImprimir fn){ LSE_nodo *p; for( p = L.header; p!=NULL; p = p->sig) fn(p->G); }

Contenu connexe

Tendances

Listas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesListas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesMago Julio Cesar
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++compumet sac
 
Ejercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registrosEjercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registrosrasave
 
Listas doblemente enlazadas C++ UP
Listas doblemente enlazadas C++ UPListas doblemente enlazadas C++ UP
Listas doblemente enlazadas C++ UPMiguelGomez371
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaAngel Vázquez Patiño
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completoBoris Salleg
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasknowallrpa
 

Tendances (20)

Listas
ListasListas
Listas
 
Tipos de Datos Abstractos (TDA)
Tipos de Datos Abstractos (TDA)Tipos de Datos Abstractos (TDA)
Tipos de Datos Abstractos (TDA)
 
Listas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesListas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas Circulares
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colas
 
Ordenamiento shell
Ordenamiento shellOrdenamiento shell
Ordenamiento shell
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Ejercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registrosEjercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registros
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Listas doblemente enlazadas C++ UP
Listas doblemente enlazadas C++ UPListas doblemente enlazadas C++ UP
Listas doblemente enlazadas C++ UP
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Listas
ListasListas
Listas
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
02.modelo e r
02.modelo e r02.modelo e r
02.modelo e r
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en java
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Abstracción de datos
Abstracción de datosAbstracción de datos
Abstracción de datos
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 

En vedette

46769481 guia-de-investigacion-de-operaciones-i[1]
46769481 guia-de-investigacion-de-operaciones-i[1]46769481 guia-de-investigacion-de-operaciones-i[1]
46769481 guia-de-investigacion-de-operaciones-i[1]Estudiantes Unamonagas
 
Problema de Asignación
Problema de AsignaciónProblema de Asignación
Problema de AsignaciónJose
 
Problema del Transporte
Problema del TransporteProblema del Transporte
Problema del TransporteJose
 
Tutorial de inscripción curso introductorio
Tutorial de inscripción curso introductorioTutorial de inscripción curso introductorio
Tutorial de inscripción curso introductorioyako10179
 
Computación ii 324-1-estructuras dinamicas-con enlaces
Computación ii   324-1-estructuras dinamicas-con enlacesComputación ii   324-1-estructuras dinamicas-con enlaces
Computación ii 324-1-estructuras dinamicas-con enlacesIsbelia Pelayo
 
Lenguajes De Programacion Web
Lenguajes De Programacion WebLenguajes De Programacion Web
Lenguajes De Programacion Webvictorluis19
 
Trabajo Practico - Investigación de Operaciones II (348) - UNA
Trabajo Practico - Investigación de Operaciones II (348) - UNATrabajo Practico - Investigación de Operaciones II (348) - UNA
Trabajo Practico - Investigación de Operaciones II (348) - UNARonald Alexander Medina Pinto
 
Curso introductorio 2014 2
Curso introductorio 2014 2Curso introductorio 2014 2
Curso introductorio 2014 2ligiafarfan
 
Arquitectura de paginas web
Arquitectura de paginas webArquitectura de paginas web
Arquitectura de paginas webAime Rodriguez
 

En vedette (20)

COLAS
COLASCOLAS
COLAS
 
PILAS
PILASPILAS
PILAS
 
Introducción a Turbo Pascal
Introducción a Turbo PascalIntroducción a Turbo Pascal
Introducción a Turbo Pascal
 
46769481 guia-de-investigacion-de-operaciones-i[1]
46769481 guia-de-investigacion-de-operaciones-i[1]46769481 guia-de-investigacion-de-operaciones-i[1]
46769481 guia-de-investigacion-de-operaciones-i[1]
 
Sesion 05a - Metodo Simplex
Sesion 05a - Metodo SimplexSesion 05a - Metodo Simplex
Sesion 05a - Metodo Simplex
 
Problema de Asignación
Problema de AsignaciónProblema de Asignación
Problema de Asignación
 
Problema del Transporte
Problema del TransporteProblema del Transporte
Problema del Transporte
 
Estrategias objetivo 8
Estrategias objetivo 8Estrategias objetivo 8
Estrategias objetivo 8
 
Tutorial de inscripción curso introductorio
Tutorial de inscripción curso introductorioTutorial de inscripción curso introductorio
Tutorial de inscripción curso introductorio
 
Informe 324
Informe 324Informe 324
Informe 324
 
Concurso Preparador Didácticas Especiales
Concurso Preparador Didácticas EspecialesConcurso Preparador Didácticas Especiales
Concurso Preparador Didácticas Especiales
 
Estudiantes EUS CAPITAL inscritos en secretaría
Estudiantes EUS CAPITAL inscritos en secretaríaEstudiantes EUS CAPITAL inscritos en secretaría
Estudiantes EUS CAPITAL inscritos en secretaría
 
Trabajo Practico - Simulación (337) - UNA
Trabajo Practico - Simulación (337) - UNATrabajo Practico - Simulación (337) - UNA
Trabajo Practico - Simulación (337) - UNA
 
Computación ii 324-1-estructuras dinamicas-con enlaces
Computación ii   324-1-estructuras dinamicas-con enlacesComputación ii   324-1-estructuras dinamicas-con enlaces
Computación ii 324-1-estructuras dinamicas-con enlaces
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
Lenguajes De Programacion Web
Lenguajes De Programacion WebLenguajes De Programacion Web
Lenguajes De Programacion Web
 
mete
metemete
mete
 
Trabajo Practico - Investigación de Operaciones II (348) - UNA
Trabajo Practico - Investigación de Operaciones II (348) - UNATrabajo Practico - Investigación de Operaciones II (348) - UNA
Trabajo Practico - Investigación de Operaciones II (348) - UNA
 
Curso introductorio 2014 2
Curso introductorio 2014 2Curso introductorio 2014 2
Curso introductorio 2014 2
 
Arquitectura de paginas web
Arquitectura de paginas webArquitectura de paginas web
Arquitectura de paginas web
 

Similaire à LISTAS

ED 03 1_listas
ED 03 1_listasED 03 1_listas
ED 03 1_listasA J
 
Colas y listas generales
Colas y listas generalesColas y listas generales
Colas y listas generalesPatty Torres
 
8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a ParteUVM
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datoscharlezgt
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datosmariajuly
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colasiventura26
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrbviela6
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrbviela6
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrbviela6
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrbviela6
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasElias Peña
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasElias Peña
 

Similaire à LISTAS (20)

7. Listas.ppt
7. Listas.ppt7. Listas.ppt
7. Listas.ppt
 
ED 03 1_listas
ED 03 1_listasED 03 1_listas
ED 03 1_listas
 
Colas y listas generales
Colas y listas generalesColas y listas generales
Colas y listas generales
 
LISTAS ESPECIALES
LISTAS ESPECIALESLISTAS ESPECIALES
LISTAS ESPECIALES
 
8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte
 
05 listas1 t2018
05 listas1 t201805 listas1 t2018
05 listas1 t2018
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
06 listas1 t2018
06 listas1 t201806 listas1 t2018
06 listas1 t2018
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datos
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colas
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
Lista simple
Lista simpleLista simple
Lista simple
 

Plus de Gustavo Salazar Loor (20)

Max Plus Compilar vhdl
Max Plus Compilar vhdlMax Plus Compilar vhdl
Max Plus Compilar vhdl
 
ECUADOR
ECUADORECUADOR
ECUADOR
 
Electronica I Clase07
Electronica I Clase07Electronica I Clase07
Electronica I Clase07
 
Electronica I Clase07
Electronica I Clase07Electronica I Clase07
Electronica I Clase07
 
Electronica I Clase06
Electronica I Clase06Electronica I Clase06
Electronica I Clase06
 
Electronica I Clase05
Electronica I Clase05Electronica I Clase05
Electronica I Clase05
 
Electronica I Clase04
Electronica I Clase04Electronica I Clase04
Electronica I Clase04
 
Electronica I Clase03
Electronica I Clase03Electronica I Clase03
Electronica I Clase03
 
Electronica I Clase02
Electronica I Clase02Electronica I Clase02
Electronica I Clase02
 
Electronica I Clase01
Electronica I Clase01Electronica I Clase01
Electronica I Clase01
 
TDA
TDATDA
TDA
 
ARBOLES MULTICAMINOS
ARBOLES MULTICAMINOSARBOLES MULTICAMINOS
ARBOLES MULTICAMINOS
 
GRAFOS
GRAFOSGRAFOS
GRAFOS
 
HEAPS
HEAPSHEAPS
HEAPS
 
ARBOLES
ARBOLESARBOLES
ARBOLES
 
CODIGO DE HUFFMAN
CODIGO DE HUFFMANCODIGO DE HUFFMAN
CODIGO DE HUFFMAN
 
RESPIRACION Y FERMENTACION
RESPIRACION Y FERMENTACIONRESPIRACION Y FERMENTACION
RESPIRACION Y FERMENTACION
 
CODIGO GENETICO
CODIGO GENETICOCODIGO GENETICO
CODIGO GENETICO
 
ATP
ATPATP
ATP
 
DUREZA
DUREZADUREZA
DUREZA
 

Dernier

Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptNancyMoreiraMora1
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!CatalinaAlfaroChryso
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...JoseMartinMalpartida1
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
Linea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docxLinea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docxEnriqueLineros1
 

Dernier (20)

Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Linea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docxLinea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docx
 

LISTAS

  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. CONTIGUA: BUSQUEDA int LSCont_BuscarNodo(LSCont L, Generico G, Generico_Comparacion fn) { int i; Generico elemento; for(i = 0; i <=L.ultimo;i++){ elemento = ArrayU_ElemC(L.Elementos, i); if(f(elemento, G) == 0) return (i) } return(-1); }
  • 14. CONTIGUA: INSERTAR bool LSCont_Insertar(LSCont *L, int P, Generico G){ int i, Generico ele1, ele2; if(LSCont_EstaLlena(L)) return FALSE; if(P<=-1) return FALSE; //MOVER TODOS for(i = L->ultimo; i >=P ;i--){ ele1 = ArrayU_ElemC(L->Elementos,i); ArrayU_ElemM(L->Elementos,i+1, ele1); } ArrayU_ElemM(L->Elementos, 0, G); L->utlimo ++; return TRUE; } bool LSCont_InsertarInicio( LSCont *L, Generico G){ int i; Generico ele1, ele2; //No insertar si ya esta llena if(LSCont_EstaLlena(L)) return FALSE; //Mover todo hacia delante for(i = L->ultimo; i >=0 ;i--){ ele1 = ArrayU_ElemC(L->Elementos,i); ArrayU_ElemM(L->Elementos,i+1, ele1); } ArrayU_ElemM(L->Elementos, 0, G); L->ultimo++; return(TRUE); } 9 9 4 5 6 7 8 9 0 1 2 8 3 5 1 10 1 2 3 8 4 5 1 10 0 9 4 5 6 7 8 9 0 1 2 8 3 5 1 10 last last last last 1 2 3 8 4 5 1 1 1 9
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. INSERCION AL INICIO/FINAL bool LSE_InsertarNodoInicio(LSE *L, LSE_nodo *nuevo){ if (!nuevo) return FALSE; if(LSE_EstaVacia(*L)){ L->header = L->last = nuevo; } else{ LSE_Nodo_ModificarEnlace( nuevo, L->header); L->header = nuevo; } return(TRUE); } bool LSE_InsertarNodoFin(LSE *L, LSE_nodo *nuevo){ if(!nuevo) return FALSE; if(LSE_EstaVacia(*L)){ L->header = L->last = nuevo; } else{ LSE_Nodo_ModificarEnlace(L->last,, nuevo); L->last = nuevo; } return(TRUE); } nuevo->sig = header; header = nuevo; last->sig = nuevo; last = nuevo; Si la lista esta vacía, tanto header como last apuntan al nuevo nodo Si no, si es al inicio el nuevo header, es el nuevo nodo Si no, si es al final, el nuevo last es el nuevo nodo 10 5 8 2 31 25 last header 9 nuevo header 18 nuevo last
  • 30.
  • 31.
  • 32.
  • 33.