La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 LISTA ENCADENADAS

2 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

3 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.

4 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 1 2 3 4 P X LIST P X P X Y Y

5 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

6 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

7 INSAFTER 12 4 3 X Q Q XQ P AYZ XQ P AYZ XAY Z Resultado:

8 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)

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

10 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)

11 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.

12 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

13 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

14 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

15 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


Descargar ppt "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."

Presentaciones similares


Anuncios Google