LISTA ENCADENADAS. DEFINICIÓN Las listas están formadas por una serie de nodos; cada nodo tienen un campo de información y un apuntador (puntero) al siguiente.

Slides:



Advertisements
Presentaciones similares
Branch-and-bound Search
Advertisements

Funciones/Funciones Elementales/Polinomios.
Compiladores e intérpretes Análisis Sintáctico III
PILA.
ÁRBOLES EN C UNIVERSIDAD “ALONSO DE OJEDA” Facultad de Ingeniería
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.
Estructuras de datos y algoritmos
Estructura de Datos En C++
ÁRBOLES BINARIOS DE BUSQUEDA
Operaciones sobre un árbol
Polinomios.
PROGRAMACION DE Pilas o Stacks y Colas
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Estructuras de Control
Estructuras de control
Estructuras de Datos Punteros y algo más.
Estructuras de Datos Especificación formal de Listas.
Monomios y Polinomios.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Colas y Listas Enlazadas
Almacenamiento y Recuperacion de Información TAD_ABB Ana Lilia Laureano Cruces Universidad Autónoma Metroplotiana.
COLAS, IMPLEMENTACIÓN A PARTIR DE LISTAS Y PARA PILAS
Listas circulares.
PROGRAMACION II.  Es un conjunto de datos no necesariamente del mismo tipo, los cuales se podrán manipular o realizar cualquier operación sobre cada.
C++ LISTAS C++ 11/04/2017 Ing. Edgar Ruiz Lizama.
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
PILAS, COLAS, RECURSIVIDAD.
La Pila o Stack Programación. La pila (stack) es una estructura ordenada de elementos en la que se pueden insertar o remover elementos por un extremo.
Interpolación y aproximación polinomial
Estructura de Datos y Algoritmos
Introducción a LISP Sergio Jiménez Celorrio Departamento Ingeniería Informática – UC3M.
Estructura de Datos En C++
Métodos de Búsqueda Informada. Búsqueda de la mejor Ruta En esta sección no sólo nos interesa encontrar una posible ruta, sino obtener aquella ruta que.
Programación I Técnico Universitario en Web Dpto. de Informática FCFMyN - UNSL -11-
Estructuras de Datos Dinámicas: Listas Programación I Departamento de Informática Universidad Nacional de San Luis Argentina 2014.
Pilas y Colas Estructuras de Datos.
RESOLUCIÓN DE ECUACIONES CUADRÁTICAS MATEMÁTICAS III.
COLAS Curso de Introducción a la Computación. Colas La cola es una colección ordenada de elementos de la que se pueden borrar elementos en un extremo.
LISTA DOBLEMENTE ENLAZADA
ÁRBOLES Curso de Introducción a la Computación. Árboles binarios Un árbol binario es un conjunto de elementos que o está vacío o está dividido en tres.
Universitarios: Ricardo Gonzales Jimenez Wilfredo Coca Reinaldo Yohan Docente: Lic. Israel Torrez Valverde Tema: Listas doblemente Enlazadas.
Otros tipos de listas Curso de Introducción a la Computación.
Listas Ligadas Simples. Definíción I  Es, en sencillas palabras. un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la.
Diseño de Algoritmos. Curso J.L. Leiva O. TEMA3TEMA3 TEMA3TEMA3 Estructuras Dinámicas Contenido del Tema Profesor: José Luis Leiva Olivencia. Despacho:
Arboles B (búsqueda externa)
Contenido:  ¿Qué son los Punteros?  Los Procedimientos: New y Dispose.
Estructuras de datos Fundamentos de análisis y diseño de algoritmos.
INSTITUTO TECNOLOGICO DE APIZACO
Algoritmos y Estructuras de datos Listas Doblemente enlazadas
UNIDAD IV. PILAS, COLAS, RECURSION APLICADAS A LENGUAJE C.
Estructuras con punteros: Nodos y Listas. Un programa C.
 Introducción  Conceptos El equipo demostrara y mostrara los conceptos, definición y funcionamiento de una las “listas doblemente enlazadas y circulares”
Lic. En C.C. Ann Margareth Meza Rodríguez
Presente un cuestionario con los aspectos mas importantes sobre los
IMPLEMENTACION DE COLAS MEDIANTE LISTAS
Estructura de Datos..
PROGRAMACION DE Pilas o Stacks
Estructura de Datos PILAS. es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In.
M.C. Meliza Contreras González
División de polinomios
OPERACIONES CON PILAS DECLARACIÓN O INICIALIZACIÓN DE LA PILA. Stack NombrePila=newStack (max);
PROGRAMACION DE Pilas o Stacks y Colas
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.
Expresiones algebraicas.
Ficha de datos Créditos Institucionales: 8 créditos.
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.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
Listas Dinámicas.
Transcripción de la presentación:

LISTA ENCADENADAS

DEFINICIÓN Las listas están formadas por una serie de nodos; cada nodo tienen un campo de información y un apuntador (puntero) al siguiente nodo de la lista. list info(p) next(p) nodo(p) nil

OPERACIONES BÁSICAS Una operación básica es la de obtener un nodo vacío. Esta operación se denomina getnode. La operación regresa un apuntador al nodo vacío. La operación complementaria regresa un nodo al sistema, esta operación es llamada freenode(p) y libera el nodo apuntado por p.

OPERACIÓN PUSH La operación push, inserta un nodo nuevo a la cabeza de una lista SUBRUTINA PUSH(X:ITEM; LIST:LISTA) 1. P  GETNODE 2. INFO(P)  X 3. NEXT(P)  LIST 4. LIST  P P P X LIST P X P X Y Y

OPERACIÓN POP La operación pop elimina el nodo que se encuentra en la cabeza de la lista. FUNCION POP(LIST LISTA) REGRESA UN ELEMENTO DE LA LISTA 1. P  LIST 2. LIST  NEXT(P) 3. X  INFO(P) 4. FREENODE(P) 5. REGRESA X 1 24 X  A LIST P AY P AY 3 P AY

OPERACIÓN INSAFTER Algoritmo para insertar un nodo después del nodo P. SUBRUTINA INSAFTER(P:APUNTADOR,X:..) 1. Q  GETNODE 2. INFO(Q)  X 3. NEXT(Q)  NEXT(P) 4. NEXT(P)  Q

INSAFTER X Q Q XQ P AYZ XQ P AYZ XAY Z Resultado:

ALGORITMO DELAFTER Algoritmo para eliminar el nodo después del nodo P. SUBRUTINA DELAFTER(P:APUNTADOR;X:..) 1. Q  NEXT(P) 2. X  INFO(Q) 3. NEXT(P)  NEXT(Q) 4. FREENODE(Q)

DELAFTER 1 P AY Q X  Y 2 B P AY Q B 3

ALGORITMO PARA LA CREACIÓN DE UNA LISTA ORDENADA SUBRUTINA PLACE(X:INFO; LIST:APUNTADOR) 1. FOUND  FALSE 2. P  LIST 3. Q  NIL 4. MIENTRAS (P<>NIL) AND (NOT FOUND) HACER a. SI X<=INFO(P) ENTONCES 1. FOUND  FALSE b. ELSE 1. Q  P 2. P  NODE[P].NEXT 5. SI Q=NIL ENTONCES a. PUSH(LIST,X) 6. ELSE b. INSAFTER(Q,X)

Representación de polinomios Un polinomio en (x, y, z) puede representarse como una lista. En cada nodo se almacena el exponente de cada variable y el valor del coeficiente. Por tanto cada nodo de la lista será un registro con los campos: C - para el coeficiente y X, Y, Z - para los exponentes de x, y, z respectivamente.

FUNCION POLYINSERT(I:INFOTYPE;FIRST:NODEPTR) REGRESA NODEPTR 1. SI FIRST=NIL ENTONCES a. PUSH(I,FIRST) 2. SINO a. A  INFO(FIRST).X b. B  INFO(FIRST).Y c. C  INFO(FIRST).Z d. SI (A < I.X) OR ((A=I.X)AND(B<I.Y)) OR ((A=I.X) AND (B=I.Y) AND (C<I.Z)) THEN 1. PUSH(I,FIRST) e. SINO 1. S  FIRST 2. FOUND  FALSO ALGORITMO DE INSERCIÓN EN POLINOMIO

3. MIENTRAS (NEXT(S)<>NIL) AND (NOT FOUND) HACER a. Q  NEXT(S) b. A  INFO(Q).X c. B  INFO(Q).Y d. SI (A < I.X) OR ((A=I.X)AND(B<I.Y)) OR ((A=I.X) AND (B=I.Y) AND (C<I.Z)) ENTONCES 1. S  NEXT(S) e. SINO 1. INSAFTER(S,I) 2. FOUND  VERDADERO 3. SI NOT FOUND ENTONCES a. INSAFTER(S,I) 4. REGRESA FIRST ALGORITMO DE INSERCIÓN EN POLINOMIO CONTINUACIÓN

Derivada de un polinomio FUNCION POLYDER(POLY:NODEPTR) REGRESA NODEPTR 1. P  POLY 2. QX  NIL 3. MIENTRAS P<>NIL HACER a. I  INFO(P) b. XP  I.X c. SI XP<>0 ENTONCES 1. I.C  I.C*I.X 2. I.X  I.X-1 3. QX  POLYINSERT(I,QX) d. P  NEXT(P) 4. REGRESA QX

Evaluación de un polinomio FUNCION POLYEVAL(POLY:NODEPTR; X1,Y1,Z1:REAL) REGRESA REAL 1. P  POLY 2. VALOR  0 3. MIENTRAS P<>NIL HACER a. I  INFO(P) b. VALOR  VALOR + I.C*POT(X1,I.X)* POT(X1,I.Y)*POT(Z1,I.Z) c. P  NEXT(P) 4. REGRESA VALOR