.


:




:

































 

 

 

 





( 3- ,

050102 )

..

, . , , , , , , ..

̻ , , : , , , , .

̻ , .

:

;

, ;

;

:

;

:

, ;

;

.

 

: , , , .

 

, Turbo Pascal 7.0 WS C++ ( ).

 

- .

- , FIFO (First In and First Out - ).

- . - ( ) ( ).

, , .

:

( );

/ ( );

( ).

 

- Queue_Test.

 

qretrieve() ; . , . qretrieve() , , .

""

 

// FIFO First In - First Out

// Queue

Programm Queue_Test;

var

q:array[0..30] of Integer;

qnext,qindex,qlength:Integer;

procedure qstore(i:Integer);

begin

if (qnext+1)<qlength then

begin

qnext:=qnext+1;

q[qnext]:=i

end

else

writeln(' ')

end;function qretrieve():Integer;

begin

if qindex=qnext then

begin

writeln(' ');

qretrieve:=0;

end

else

begin

qindex:=qindex+1;

qretrieve:=q[qindex]

end;

end;

begin

qlength:=30;

qnext:=0;

qindex:=0;

qstore(1); 1

qstore(2); 1 2

qstore(3); 1 2 3

qretrieve(); { 1} 2 3

qstore(4); 2 3 4

qretrieve(); { 2} 3 4

qretrieve(); { 3} 4

qretrieve(); { 4}

end.

 

 

Queue_Test , , .

 

, , .

 

qnext qindex (0). ( , ).

 

qindex 1 qnext - , , . qindex=qnext - . .

""

 

// FIFO First In - First Out

// Queue

 

Programm Queue_Test;

var

q:array[0..30] of Integer;

qnext,qindex,qlength:Integer;

procedure qstore(i:Integer);

begin

if (qnext+1)<>qlength then

begin

q[qnext]:=i;

qnext:=qnext+1;

if qnext=qlength then

qnext:=0 { }

end

else

writeln(' ')

end;function qretrieve():Integer;

begin

if qindex=qlength then

qindex:=0; { }

if qindex=qnext then

begin

writeln(' ');

qretrieve:=0;

end

else

begin

qretrieve:=q[qindex];

qindex:=qindex+1

end;

end;begin

qlength:=30;

qnext:=0;

qindex:=0;

qstore(1); 1

qstore(2); 1 2

qstore(3); 1 2 3

qretrieve(); { 1} 2 3

qstore(4); 2 3 4

qretrieve(); { 2} 3 4

qretrieve(); { 3} 4

qretrieve(); { 4}

end.

 

- , - LIFO (Last In and First Out - ). , .

 

- , - . .

 

- .

 

, , .

 

:

( );

( ) ( );

() , Forth ( ).

 

 

""

 

Programm Stack_Test;

const

N=30;

var

stack:array[0..N] of char;

slen,pos:integer;

 

procedure push(i:char);

begin

if pos<slen then

begin

stack[pos]:=i;

pos:=pos+1

end

else

writeln(' .');

end;

 

function pop():char;

begin

if pos=0 then

begin

writeln(' .');

pop:=0

end

else

begin

pos:=pos-1;

pop:=stack[pos]

end;

end;

begin

slen:=N;

pos:=0;

push('A'); A

push('B'); B A

push('C'); C B A

pop(); { C} B A

push('D'); D B A

pop(); { D} B A

pop(); { B} A

pop(); { A}

end.

 

 

Stack_Test.

 

Pos - - .

 

Pos , ; Pos=0 - .

 

""

Programm Stack_Test;

type

stype=real;

next=^elem;

elem=record

dr:next;

data:stype

end;

stack=next;

var

p:stack;

procedure push(var st:stack; newl:stype);

var

q:next;

begin

new(q);

q^.data:=newl; { }

q^.dr:=st;

st:=q; { - }

end;

function pop(var st:stack):stype;

var

q:next;

begin

if st=nil then

writeln(' .')

else

begin

pop:=st^.data;

q:=st;

st:=st^.dr;

dispose(q)

end;

end;

begin

push(p,43);

writeln(pop(p):3:9);

push(p,726,54);

writeln(pop(p):3:9);

readln;

end.

 

Stack_Test.

 

, . - . , . , - .

 

, "" - , nil.

 

, , .

 

: push(var st:stack,...).

 

P , P nil.

 

p:=nil;

 

 

 

:

;

() .

. ; () . .

 

() ().

().

 

 

, . , (). (. 1).

 

 

. (l1), - , .

nil (NULL).

 

: . , , , , .

 

, , , :

;

;

;

.

""

 

rel=^elem;

elem=record

next:rel1;

data:< >

end;

list1=rel1;

var

l1:list1;

 

procedure insert1(link:rel1;info:<>);

var

q:elem1;

begin

new(q);

q^.data:=info;

q^.next:=link^.next;

link^.next:=q

end;

 

procedure delete1(link:rel1);

var

q:rel1;

begin

if link^.next<>nil then

begin

q:=link^.next;

link^.next:=link^.next^.next;

dispose(q);

end

end;

 

function search1(l:list1;info:<>;var r:rel1):boolean;

var

q:rel1;

begin

search1:=false;

r:=nil;

q:=l^.next;

while (q<>nil) and (r<>nil) do

begin

if q^.data=info then

begin

search:=true;

r:=q

end;

q:=q^.next

end

end;

 





:


: 2016-10-06; !; : 487 |


:

:

- , , .
==> ...

1530 - | 1340 -


© 2015-2024 lektsii.org - -

: 0.066 .