.


:




:

































 

 

 

 





.

-

-

075200

2004 .


. .. . . : - . : - , 2004. 77 .

 

, 075200 .

.

- - ( ).

 

:

..,

..,


.. 4

1. .. 5

1.1 7

1.2 8

1.3 13

1.4 . . 14

1.5 15

2. .. 33

2.1 33

2.2 44

3. .. 45

3.1 46

3.2 . 48

3.3 49

4. 54

4.1 . 55

4.2 . 57

4.3 . 59

4.4 . 60

5. .. 74

.. 76

.. 77

 

 


. , . . 075200 . , , .

, . , , , , . . , . , , . . - . . , . .

075200 . , , internet-, http://www.citforum.ru http://algoritm.manual.ru. , , . , . , . , .

, [1].

. , . , . , .

" " , . .

. , , .

(, ) () (, , ). , , , . . , . , .

- - () . , . , . . 1. , , . .

. 1.

- . .

(, , , , ) (, ). - , , .

" " " ". , .. , , , .

:

1) , .. , , , ;

2) , ;

3) , .

, .

1.1 [2]

 

. , . , . , 1000 .

 

:

 

       
A[1,0]      
A[2,0] A[2,1]    
A[3,0] A[3,1] A[3,2]  

 

:

A[1,0] A[2,0] A[2,1] A[3,0] A[3,1] A[3,2]

. 2.

 

(. . 2). A[i,j] B[x] : x=[i(i-1)/2+j] i>j. .

, , i .

. , , A. , .

1.2 [3]

. . . , , , , .

 

, . . , . , , . , .

 

const

MaxArrayIDX=1000;

type

TIntArray=array[1..MaxArrayIDX] of integer;

PIntArray=^TIntArray;

var Items:PIntArray;

 

procedure CreateAndFillArray(NumItems:integer);

var i:integer;

begin

GetMem(Items,NumItems*SizeOf(Integer));

for i:=1 to NumItems do Items^[i]:=i;

end;

 

procedure DisposeArray;

begin

FreeMem(Items);

end;

 

, , . , , MaxArrayIDX . , 100- . . , . .

, . Delphi, 4.0, .

, .

var Items:array of integer;

 

procedure CreateAndFillArray(NumItems:integer);

var i:integer;

begin

SetLength(Items,NumItems);

for i:=Low(Items) to High(Items) do Items[i]:=i;

end;

 

procedure DisposeArray;

begin

SetLength(Items,0);{ Items:=nil}

end;

. . , . . . , Delphi, - :

var List:array of integer;

 

procedure AddItem(new_item:integer)

begin

// 1 .

SetLength(List,Length(List)+l);

// .

List[High(List)]:=new_item;

end;

, . -, . 1000 , 1000 . , , , [4]. , , , 10 1. , , . . , .

 

 

, . , , . .

 

:

;

;

;

- (, ) .

 

, . , , . , . , 1000 , 999 . . . , "" . - , t, IsGarbage. IsGarbage True.

"", , . . . . , . . , .

 

 

, [5], . . 3 .

 

. 3.

INF , , NEXT . . , .

. -, (. 4). , , , . Pascal :

 

new_cell^.NextCell:=top_cell;

top_sell:=new_cell;

 

 

 

 


. 4.

 

. , , after_me. Pascal :

 

new_cell^.NextCell:=after_me^.NextCell;

after_me^.NextCell:=new_cell

 

, .

, . . , , .

, , , , . (. 5).

. 5.

1.3 [6]

 

- , , .

: , . pushing (), popping (). , . , :

 

var Stack:array of integer;

 

procedure Push(value:integer);

begin

SetLength(Stack, Length(Stack)+1);

Stack[High(Stack)]:=value

end;

 

function Pop:integer;

begin

Result:=Stack[High(Stack)];

SetLength(Stack, Length(Stack)-1)

end;

 

, , . , .. , .. , , . , .

1.4 . . [7]

- , , (, , ) - .

. . , , , , , . , - , , .

 

 

. , . , .

. UNIX . , .

, - . , . , . N , O(N) , .

, , . TPriorityCell :

type

PPriorityCell = ^TPriorityCell;

TPriorityCell = record

Value:string; //

Priority:integer; //

NextCell:PPriorityCell; //

end;

 

, .

, . , .

1.5 [8]

 

, , , .

 

:

 

a) , - ;

b) ( ) m³0 T_1,....T_m, , , ; _1,..., _m .

 

: .

. 6 . , , D. , , F G, , I J.

, . , , . , - , .

 

 


. 6.

 

, . , , . . , . 6 I , . , - , . . 6 , , I J. , , .

, , . - , . . - . , . 6, 3, , , .

1. . 6 3. - . , . 6, 4.

2 . 3 . N N- .

, .

- , .

. , : , , .

 

. . - , , . :

:

1. .

2. .

3. .

 

:

 

1. .

2. .

3. .

:

 

1. .

2. .

3. .

 

, 7, :

 

 


. 7.

 

: A, B, D, , , G, F, H, J

: D, B, A, E, G, C, H, F, J

: D, B, G, E, H, J, F, C, A

 

 

- . , " ", . . 8 , 1,2,4,6,7,9.

 

 

 


. 8. 1, 2, 4, 6, 7, 9

 

. . . , . , . [9], .

 

 

, . , " ". .

-, , . . -, , . . . 9 , 4, .

 

 
 

 

 


. 9.

 

, , . , . , . , . , . ( . 10 3), .

 
 

 

 


. 10.

 

.

 

c , , . , . [10], , , . .

 

 

. , O(N), N- . (N) . , N/2, (N) .

, .

AVL-

 

AVL- - , . AVL- . . 11 AVL-.

. 11. AVL

 

AVL- O(log2N). , AVL- O(log2N), N , O(n).

 





:


: 2017-02-25; !; : 466 |


:

:

: , , , , .
==> ...

1562 - | 1426 -


© 2015-2024 lektsii.org - -

: 0.163 .