p1

                     PRZESZUKIWANIE DIGRAFU METODA DFS

     PROCEDURE DFS(
            N,S  : INTEGER;
       VAR  DIG  : GRAPH;
       VAR  PRED : ARRN);

     Procedura DFS przeszukuje metoda dfs N-wierzcholkowy digraf DIG, dany
   w postaci tablicy list. Przeszukiwanie rozpoczyna sie w wierzcholku S.
     Drzewo osiagalnosci wierzcholkow z wierzcholka S jest zapisane w tab-
   licy PRED, zawierajacej poprzedniki wierzcholkow wzgledem zrodla S.
p2

                     PRZESZUKIWANIE DIGRAFU METODA BFS

     PROCEDURE BFS(
            N,S  : INTEGER;
       VAR  DIG  : GRAPH;
       VAR  PRED : ARRN);

     Procedura BFS przeszukuje metoda bfs N-wierzcholkowy digraf DIG, dany
   w postaci tablicy list. Przeszukiwanie rozpoczyna sie w wierzcholku S.
     Drzewo osiagalnosci wierzcholkow z wierzcholka S jest zapisane w tab-
   licy PRED, zawierajacej poprzedniki wierzcholkow wzgledem zrodla S.
p3

        ZNAJDOWANIE NAJKROTSZYCH DROG W SIECI METODA BELLMANA-FORDA

     PROCEDURE PDM(
            N,M,S,INF  : INTEGER;
       VAR  POINTER    : ARRN1;
       VAR  ENDV,WT    : ARRM;
       VAR  DIST,PRED  : ARRN);

     Procedura PDM wyznacza najkrotsze drogi ze  zrodla  S  do  wszystkich
   wierzcholkow w sieci skladajacej sie z N wierzcholkow i M  lukow.  Siec
   jest dana za pomoca tablic POINTER, ENDV i WT,  stanowiacych  tablicowa
   reprezentacje jej pekow wyjsciowych. (INF powinna byc duza liczba natu-
   ralna.)
     Siec nie moze zawierac cykli ujemnej dlugosci.
     Dlugosci znalezionych najkrotszych drog sa zapisane w tablicy DIST, a
   wierzcholki poprzedzajace na najkrotszych drogach z S - w tablicy PRED.
     Procedura PDM jest realizacja algorytmu Bellmana-Forda, w wersji  po-
   danej przez Moore'a, d'Esopo i Papego.
p4

          ZNAJDOWANIE NAJKROTSZYCH DROG W SIECI METODA DIJKSTRY

     PROCEDURE DIJKSTRA(
            N,INF,S,T  : INTEGER;
       VAR  W          : ARRNN;
       VAR  PATH       : BOOLEAN;
       VAR  FINAL      : ARRBN;
       VAR  DIST,PRED  : ARRN);

     Procedura DIJKSTRA jest realizacja algorytmu Dijkstry i wyznacza naj-
   krotsza droge ze zrodla S do odplywu T w sieci  N-wierzcholkowaj  danej
   za pomoca macierzy wag W, w ktorej INF jest  wartoscia  nieistniejacego
   luku. Dlugosci lukow w sieci musza byc nieujemne.
     Dlugosci znalezionych najkrotszych drog sa zapisane w tablicy DIST, a
   wierzcholki poprzedzajace na najkrotszych drogach z S - w tablicy PRED.
     Zmienne logiczne PATH i FINAL okreslaja czy istnieje droga z S do in-
   nych wierzcholkow i czy znaleziono najkrotsza.
p5

              ZNAJDOWANIE NAJKROTSZYCH DROG W SIECI ACYKLICZNEJ

     PROCEDURE CPM(
            N,INF      : INTEGER;
       VAR  DIG        : GRAPH;
       VAR  ACYCLIC    : BOOLEAN;
       VAR  DIST,PRED  : ARRN);

     Procedura CPM wyznacza najkrotsze drogi ze zrodel do  wszystkich  po-
   zostalych wierzcholkow w N-wierzcholkowej sieci acyklicznej DIG,  danej
   w postaci list sasiadow. Zmienna ACYCLIC przyjmuje wartosc TRUE,  jesli
   siec nie zawiera cyklu i FALSE - w przeciwnym razie. W tym drugim przy-
   padku, obliczenia zostaja przerwane.
     Dlugosci znalezionych najkrotszych drog sa zapisane w tablicy DIST, a
   wierzcholki poprzedzajace na najkrotszych drogach - w tablicy PRED.

p6
   
       WYZNACZANIE NAJKROTSZEGO DRZEWA ROZPINAJACEGO METODA KRUSKALA

     PROCEDURE KRUSKAL(
            N,M                : INTEGER;
        VAR ENDV1,ENDV2,WEIGHT : ARRM;
        VAR CONNECT            : BOOLEAN;
        VAR TEDGE1,TEDGE2      : ARRN1;
        VAR TWEIGHT            : INTEGER);

      Procedura KRUSKAL jest realizacja zachlannego  algorytmu  Kruskala i
   wyznacza najkrotsze drzewo rozpinajace w sieci zawierajacej N wierzchol-
   kow i M krawedzi. Siec jest dana za pomoca dwoch tablic  ENDV1 i  ENDV2
   zawierajacych numery koncow krawedzi i tablicy WEIGHT - zawierajacej wa-
   gi krawedzi.
      Konce krawedzi znalezionego drzewa sa pamietane w tablicach TEDGE1 i
   TEDGE2, a jego waga wynosi TWEIGHT. Zmienna logiczna  CONNECT  okresla,
   czy znalezione rozwiazanie jest spojne (gdyz rozpatrywana siec nie musi
   byc spojna).

p7

    WYZNACZANIE NAJKROTSZEGO DRZEWA ROZPINAJACEGO METODA PRIMA-DIJKSTRY

     PROCEDURE PRIM(
            N,INF         : INTEGER;
        VAR W             : ARRNN;
        VAR CONNECT       : BOOLEAN;
        VAR TEDGE1,TEDGE2 : ARRN1;
        VAR TWEIGHT       : INTEGER);

      Procedura PRIM jest realizacja algorytmu  Prima-Dijkstry i  wyznacza
   najkrotsze drzewo rozpinajace w sieci N-wierzcholkowej danej za  pomoca
   macierzy wag W, w ktorej nieistniejaca krawedz ma wage INF.
      Konce krawedzi znalezionego drzewa sa pamietane w tablicach TEDGE1 i
   TEDGE2, a jego waga wynosi TWEIGHT. Zmienna logiczna  CONNECT  okresla,
   czy znalezione rozwiazanie jest spojne (gdyz rozpatrywana siec nie musi
   byc spojna).

p8

        WYZNACZANIE NAJKROTSZEGO DRZEWA ROZPINAJACEGO METODA SOLINA

     PROCEDURE SOLIN(
            N,M,INF            : INTEGER;
        VAR ENDV1,ENDV2,WEIGHT : ARRM;
        VAR TEDGE1,TEDGE2      : ARRN1;
        VAR TCOUNT,TWEIGHT     : INTEGER);

      Procedura SOLIN jest realizacja zachlannego algorytmu Solina i  wyz-
   nacza najkrotsze drzewo rozpinajace w sieci zawierajacej N wierzcholkow
   i M krawedzi. Siec jest dana za pomoca dwoch tablic  ENDV1 i  ENDV2 za-
   wierajacych numery koncow krawedzi i tablicy WEIGHT - z wagami krawedzi.
      Konce krawedzi znalezionego drzewa sa pamietane w tablicach TEDGE1 i
   TEDGE2, a jego waga wynosi TWEIGHT. Zmienna TCOUNT okresla liczbe  kra-
   wedzi w rozwiazaniu, ktora rowna N-1 jesli rozwiazanie jest spojne  lub
   jest mniejsza od N-1, w przeciwnym przypadku.
p9