1 / 15

LISTA ENCADENADAS

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. nodo(p). list. nil. info(p). next(p). OPERACIONES BÁSICAS.

leo-fox
Download Presentation

LISTA ENCADENADAS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. nodo(p) list nil info(p) next(p)

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

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

  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 1 2 Q X Q 4 3 Q X Q X A Y Z A Y Z P P Resultado: Z A Y X

  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 2 X ¬ Y A Y B P Q 3 A Y B Q P

  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. ALGORITMO DE INSERCIÓN EN POLINOMIO 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

  13. ALGORITMO DE INSERCIÓN EN POLINOMIO CONTINUACIÓN 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

  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

More Related