. (, , ).
. . , . : .
type
Adr = ^Zveno;
Zveno = record
AdrSled: Adr;
Element: Char;
end;
. . . nil.
. . AdrSled , Element .
.
. .
type
Adr1 = ^Zveno1;
Zveno1 = record
AdrSled: Adr1;
Element: < >;
end;
. 2 : . :
type
Adr2 = ^Zveno2
Zveno2 = record
AdrSled: Adr2;
AdrPred: Adr2;
Element: < >;
end;
. :
- ;
- .
, : . 2 , :
- FIFO ( , ) ;
- LIFO ( , ) .
: ( ) ( ). .
. . . . , .
Type
(* . Adr1 *)
Stek = Adr1;
Var
St: Stek;
:
St:= nil;
3 . , . . , , . :
|
|
Type
PElem = ^Elem
Elem = record
Left: Pelem;
Right: Pelem;
Code: < >;
Element: < >;
End;
, : . 2 , :
- FIFO ( , ) ,
- LIFO ( , ) .
: ( ) ( ). .
FIFO Adr1: Left, Right. Left ― , Right ― . Right. Right . , Left. Left .
:
1. .
2. .
3. .
4. .
.
New(Q);
Q^.Element:= Elem;
Q^.AdrSled:= St;
St:= Q;
:
1.
2.
3.
4.
.
A:= St^.Element;
Q:= St;
St:= St^.AdrSled;
Dispose(Q);
Left Right nil. .
:
1.
2.
3. nil AdrSled
4.
5.
.
New(Q);
Right^.AdrSled:= Q;
Q^.AdrSled:= nil;
Q^.Element:= El;
Right:= Q;
:
1.
2.
3.
4.
.
Elem:= Left^.Element;
Q:= Left;
Left:= Left^.AdrSled;
Dispose(Q);
:
.
1 | , . : ― ; ― ; ― . : ― . |
2 | , . : ― ; ― ; ― . : ― . |
3 | , . : ― ; ― ; ― . : ― . |
4 | , . : ― ; ― ; ― ; ― ; ― . : ― . |
5 | , . : ― ; ― ; ― ; ― ; ― . ; ― . |
|
|
6 | , . : ― ; ― ; ― ; ― . . |
7 | , . : ― ; ― ; ― ; ― . ; ― . |
8 | , . : ― ; ― ; ― . ; ― . |
9 | , . : ― ; ― ; ― . ; ― . |
10 | , . : ― ; ― ; ― ; ― ; ― . ; ― . |
11 | , . : ― ; ― ; ― ; ― ; ― . ; ― . |
12 | , . : ― ; ― ; ― ; ― . ; ― . |
13 | , . : ― ; ― ; ― ; ― . ; ― . |
14 | , . : ― ; ― ; ― . ; ― . |
15 | , . : ― ; ― ; ― . ; ― . |
16 | , . : ― ; ― ; ― ; ― ; ― . ; ― . |
:
|
|
1. .
2. .
, , . .