RSS    

   Ðåôåðàò: Îñíîâíûå ïîíÿòèÿ àëãîðèòìè÷åñêîãî ÿçûêà

  pTop^.pNext:=NIL;  ¦  *--¦---¬   ¦     ¦

                     L=====-   ¦   ¦=====¦

                      pTop     L-->¦ NIL ¦

                                   L=====-

                     ã=====¬       ã=====¬

  pTop^.D:=D1;       ¦  *--¦---¬   ¦ D1  ¦

                     L=====-   ¦   ¦=====¦

                      pTop     L-->¦ NIL ¦

                                   L=====-

    Ïîñëåäíèé îïåðàòîð èëè ãðóïïà îïåðàòîðîâ çàïèñûâàåò  ñîäåðæèìîå

ïîëÿ äàííûõ ïåðâîé êîìïîíåíòû.

    Äîáàâëåíèå êîìïîíåíòû â ñòåê ïðèçâîäèòñÿ ñ èñïîëüçîâàíèåì âñïî-

ìîãàòåëüíîãî óêàçàòåëÿ:

   

                     ã=====¬       ã=====¬       ã=====¬

  New(pAux);         ¦  *--¦---¬   ¦     ¦   ----¦--*  ¦

                     L=====-   ¦   ¦=====¦   ¦   L=====-

                      pTop     ¦   ¦     ¦<---    pAux

                               ¦   L=====-

                               ¦

                               ¦   ã=====¬

                               ¦   ¦ D1  ¦

                               ¦   ¦=====¦

                               L-->¦ NIL ¦

                                   L=====-

                     ã=====¬       ã=====¬       ã=====¬

  pAux^.pNext:=pTop; ¦  *--¦---¬   ¦     ¦   ----¦--*  ¦

                     L=====-   ¦   ¦=====¦<---   L=====-

                      pTop     ¦   ¦  *--¦-¬      pAux

                               ¦   L=====- ¦

                               ¦           ¦

                               ¦   ã=====¬ ¦

                               ¦   ¦ D1  ¦ ¦

                               ¦   ¦=====¦ ¦

                               L-->¦ NIL ¦<-

                                   L=====-

                     ã=====¬       ã=====¬       ã=====¬

  pTop:=pAux;        ¦  *--¦---¬   ¦     ¦   ----¦--*  ¦

                     L=====-   ¦   ¦=====¦<---   L=====-

                      pTop     L-->¦  *--¦-¬      pAux

                                   L=====- ¦

                                           ¦

                                   ã=====¬ ¦

                                   ¦ D1  ¦ ¦

                                   ¦=====¦ ¦

                                   ¦ NIL ¦<-

                                   L=====-

                     ã=====¬       ã=====¬

  pTop^.D:=D2;       ¦  *--¦---¬   ¦ D2  ¦

                     L=====-   ¦   ¦=====¦

                      pTop     L-->¦  *--¦-¬

                                   L=====- ¦

                                           ¦

                                   ã=====¬ ¦

                                   ¦ D1  ¦ ¦

                                   ¦=====¦ ¦

                                   ¦ NIL ¦<-

                                   L=====-

   Äîáàâëåíèå ïîñëåäóþùèõ êîìïîíåíò ïðîèçâîäèòñÿ àíàëîãè÷íî.

   Ðàññìîòðèì ïðîöåññ âûáîðêè êîìïîíåíò èç ñòåêà. Ïóñòü ê ìîìåíòó íà-

÷àëà âûáîðêè ñòåê ñîäåðæèò òðè êîìïîíåíòû:

                     ã=====¬       ã=====¬

                     ¦  *--¦---¬   ¦ D3  ¦

                     L=====-   ¦   ¦=====¦

                      pTop     L-->¦  *--¦-¬

                                   L=====- ¦

                                           ¦

                                   ã=====¬ ¦

                                   ¦ D2  ¦ ¦

                                   ¦=====¦ ¦

                                 --¦--*  ¦<-

                                 ¦ L=====-

                                 ¦

                                 ¦ ã=====¬

                                 ¦ ¦ D1  ¦

                                 ¦ ¦=====¦

                                 L>¦ NIL ¦

                                   L=====-

   Ïåðâûé îïåðàòîð èëè ãðóïïà îïåðàòîðîâ îñóùåñòâëÿåò  ÷òåíèå  äàííûõ

èç êîìïîíåíòû - âåðøèíû ñòåêà. Âòîðîé îïåðàòîð èçìåíÿåò çíà÷åíèå óêà-

çàòåëÿ âåðøèíû ñòåêà:

                         ã=====¬       ã=====¬

  D3:=pTop^.D;           ¦  *--¦---¬   ¦ D3  ¦

  pTop:=pTop^.pNext;     L=====-   ¦   ¦=====¦

                          pTop     ¦   ¦     ¦

                                   ¦   L=====-

                                   ¦

                                   ¦   ã=====¬

                                   ¦   ¦ D2  ¦

                                   ¦   ¦=====¦

                                   L-->¦  *--¦-¬

                                       L=====- ¦

                                               ¦

                                       ã=====¬ ¦

                                       ¦ D1  ¦ ¦

                                       ¦=====¦ ¦

                                       ¦ NIL ¦<-

                                       L=====-

   Êàê âèäíî èç ðèñóíêà, ïðè ÷òåíèè êîìïîíåíòà óäàëÿåòñÿ èç ñòåêà.

   Ïðèìåð. Ñîñòàâèòü ïðîãðàììó,  êîòîðàÿ ôîðìèðóåò ñòåê,  äîáàâëÿåò â

íåãî ïðîèçâîëüíîå êîëè÷åñòâî êîìïîíåíò, à çàòåì ÷èòàåò âñå êîìïîíåíòû

è âûâîäèò èõ íà ýêðàí äèñïëåÿ,   êà÷åñòâå äàííûõ âçÿòü ñòðîêó ñèìâî-

ëîâ. Ââîä äàííûõ - ñ êëàâèàòóðû äèñïëåÿ, ïðèçíàê êîíöà ââîäà - ñòðîêà

ñèìâîëîâ END.

   

 Program STACK;

  uses Crt;

  type

   Alfa= String[10];

   PComp= ^Comp;

   Comp= Record

           sD: Alfa;

           pNext: PComp

          end;

  var

   pTop: PComp;

   sC: Alfa;

  Procedure CreateStack(var pTop: PComp; var sC: Alfa);

   begin

    New(pTop);

    pTop^.pNext:=NIL;

    pTop^.sD:=sC

   end;

  Procedure AddComp(var pTop: PComp; var sC: Alfa);

   var pAux: PComp;

   begin

    NEW(pAux);

    pAux^.pNext:=pTop;

    pTop:=pAux;

    pTop^.sD:=sC

   end;

  Procedure DelComp(var pTop: PComp; var sC:ALFA);

   begin

    sC:=pTop^.sD;

    pTop:=pTop^.pNext

   end;

  begin

   Clrscr;

   writeln('  ÂÂÅÄÈ ÑÒÐÎÊÓ ');

   readln(sC);

   CreateStack(pTop,sC);

   repeat

    writeln('  ÂÂÅÄÈ ÑÒÐÎÊÓ ');

    readln(sC);

    AddComp(pTop,sC)

   until sC='END';

   writeln('****** ÂÛÂÎÄ  ÐÅÇÓËÜÒÀÒÎÂ ******');

   repeat

    DelComp(pTop,sC);

    writeln(sC);

   until pTop = NIL

  end.

                                    

39.   Î × Å Ð Å Ä È

   

   Î÷åðåäüþ íàçûâàåòñÿ äèíàìè÷åñêàÿ ñòðóêòóðà äàííûõ, äîáàâëåíèå êîì-

ïîíåíòû â êîòîðóþ ïðîèçâîäèòñÿ â îäèí êîíåö, à âûáîðêà îñóùåñòâëÿåòñÿ

ñ äðóãîãî êîíöà. Î÷åðåäü ðàáîòàåò ïî ïðèíöèïó:

        FIFO (First-In, First-Out) -

ïîñòóïèâøèé ïåðâûì, îáñëóæèâàåòñÿ ïåðâûì.

   Äëÿ ôîðìèðîâàíèÿ î÷åðåäè è ðàáîòû ñ íåé íåîáõîäèìî èìåòü òðè ïåðå-

ìåííûå òèïà óêàçàòåëü,  ïåðâàÿ èç êîòîðûõ îïðåäåëÿåò íà÷àëî  î÷åðåäè,

âòîðàÿ - êîíåö î÷åðåäè, òðåòüÿ - âñïîìîãàòåëüíàÿ.

   Îïèñàíèå êîìïîíåíòû î÷åðåäè è ïåðåìåííûõ òèïà óêàçàòåëü äàäèì ñëå-

äóþùèì îáðàçîì:

   

  type

   PComp=^Comp;

   Comp=record

         D:T;

         pNext:PComp

        end;

  var

   pBegin, pEnd, pAux: PComp;

ãäå pBegin - óêàçàòåëü íà÷àëà î÷åðåäè, pEnd - óêàçàòåëü êîíöà  î÷åðå-

äè, pAux - âñïîìîãàòåëüíûé óêàçàòåëü.

   Òèï Ò îïðåäåëÿåò òèï äàííûõ êîìïîíåíòû î÷åðåäè.

   Íà÷àëüíîå ôîðìèðîâàíèå î÷åðåäè âûïîëíÿåòñÿ ñëåäóþùèìè îïåðàòîðàìè:

                       ã=====¬       ã=====¬       ã=====¬

 New(pBegin);          ¦  *--¦---¬   ¦     ¦       ¦     ¦

                       L=====-   ¦   ¦=====¦       L=====-

                       pBegin    L-->¦     ¦         pEnd

                                     L=====-

                       ã=====¬       ã=====¬       ã=====¬

 pBegin^.pNext:=NIL;   ¦  *--¦---¬   ¦     ¦       ¦     ¦

                       L=====-   ¦   ¦=====¦       L=====-

                       pBegin    L-->¦ NIL ¦         pEnd

                                     L=====-

                       ã=====¬       ã=====¬       ã=====¬

 pBegin^.D:=D1;        ¦  *--¦---¬   ¦ D1  ¦       ¦     ¦

                       L=====-   ¦   ¦=====¦       L=====-

                       pBegin    L-->¦ NIL ¦         pEnd

                                     L=====-

                       ã=====¬       ã=====¬       ã=====¬

 pEnd:=pBegin;         ¦  *--¦---¬   ¦ D1  ¦   ----¦--*  ¦

                       L=====-   ¦   ¦=====¦   ¦   L=====-

                       pBegin    L-->¦ NIL ¦<---     pEnd

                                     L=====-

   Äîáàâëåíèå êîìïîíåíòû â î÷åðåäü ïðîèçâîäèòñÿ â êîíåö î÷åðåäè:

 New(pAux);

   

ã=====¬       ã=====¬       ã=====¬       ã=====¬       ã=====¬

¦  *--¦---¬   ¦ D1  ¦   ----¦--*  ¦       ¦     ¦   ----¦--*  ¦

L=====-   ¦   ¦=====¦   ¦   L=====-       ¦=====¦   ¦   L=====-

pBegin    L-->¦ NIL ¦<---    pEnd         ¦     ¦<---     pAux

              L=====-                     L=====-

 pAux^.pNext:=NIL;

   

ã=====¬       ã=====¬       ã=====¬       ã=====¬       ã=====¬

¦  *--¦---¬   ¦ D1  ¦   ----¦--*  ¦       ¦     ¦   ----¦--*  ¦

L=====-   ¦   ¦=====¦   ¦   L=====-       ¦=====¦   ¦   L=====-

Ñòðàíèöû: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12


Íîâîñòè


Áûñòðûé ïîèñê

Ãðóïïà âÊîíòàêòå: íîâîñòè

Ïîêà íåò

Íîâîñòè â Twitter è Facebook

                   

Íîâîñòè

© 2010.