Вы находитесь на странице: 1из 10

14.

. ""
-
.

()

, , ,
.
0

...

0X

. 14.1.
,
- , (. 14.1).
() (0).
- - .
.
- ( - ).
. ,
. 14.2. ,
( 8 ).

A1

SIMV

SL

TEXT

. 14.2.
1


, .
, , ,
.
.
. 14.3 ,
. 14.2. 10 (8
, 2 ).

...

...
SL

2020

TEXT

SIMV

2000

2000
2010
2020
2030

A1

2030

2040
2050

2050
...

2060


...

. 14.3.

-
.

.
. 14.4 ,
COUNT, . 14.5 -
.

A1

SIMV

SL

TEXT

COUNT
COUNT

. 14.4.
A1

:
1) ;
2)
;
3) .
,
:
. ,
: (
). , ,
.

...

...
SL

2020

COUNT

2030

TEXT

SIMV

2000

2000
2010
2020
2030

A1

2030
2010

2040
2050

2050
...

2060


...

. 14.5. COUNT

.
,
(. 14.6).

...

. 14.6. ()

(. 14.7).

...

. 14.7. ()

(.

14.8).

...

0
0

. 14.8. ( )
.
1. ,

, ..

2.
.
,
, "" .

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


,
8 (. 14.2).
, ,
C 14.1.
14.1.
.
struct el_sp
{ char id[8];
struct el_sp *uk;
};

/*
/* ()
/*

*/
*/
*/

struct el_sp *p;


struct el_sp *i, *j;

/*
/*

*/
*/

char nov_id;

/*

*/

el_sp, id, uk, p . . .


,
14.1.
14.1.

NULL
NOL

i, j, p

i, j, p

( )

*i

(*i).id

id[i]

( id) *i

i->id
(*i).uk

uk[i]

*i

, i

i->uk
i->uk->id

id[uk[i]]

( , *i)
*i

i->uk->uk

uk[uk[i]]

*i


,
- .
, .

. .
("")
.
.
, : 0, -1.


- .
. 14.9 (. 14.2)
id uk.

p 3


isv 7

0
1
2
3
4
5
6
7
8
...

id

uk


TEXT
0
4
A1
6
8
SL
1
SIMV
5
2
9

. 14.9.
( )
,
( 14.1), 14.2.

14.2.
.
#define N 1000
#define NOL 0
typedef int ukaz;
char id [N+1] [8];

/* -
/*
/*
/* ()
8

*/
*/
*/
*/

ukaz uk [N+1];
ukaz p;
ukaz i, j;
char nov_id[8];

/*
/*
/*
/*

*/
*/
*/
*/
14.1.

, i,
*i, , C
.

,
, .
,

, .
(. 14.9).
,
malloc free
C. 14.3 - nov_el, osvob inic_kuchi.

inic_kuchi

( 0-, . . 0
). nov_el (
). osvob
.
14.3. 14.2
ukaz isv;
/*
*/
/* - , */
/* (0- )
*/
void inic_kuchi ()
{ for (isv=1; isv<N; isv++)
uk[isv] = isv + 1;
9

uk[N] = NOL; isv = 1;


}
/*

*/

ukaz nov_el ()
/* ()
*/
{ukaz i;
i = isv;
if (isv != NOL) /*
*/
isv = uk[isv]; /* 1- . */
return i;
}
/* , *i
void osvob (ukaz i)
{ /* *i
uk[i] = isv;
isv = i;
}

*/
*/


1. ?
2. ?
3. ?
4.

?
5.
?

10

Оценить