1. , begin NULL.
2. : t = begin;
3. : begin = t->Next;
4. ( ) , .. free (t);
, , :
void Delete_Stack(Stack **begin) {
Stack *t;
while(*begin!= NULL) {
t = *begin;
*begin = (*begin) -> Next;
free(t);
}
}
, . Delete_ Stack :
Delete_Stack(&begin);
if(begin == NULL)
puts( Free! );
...
: , .
.
1. , :
) , , ;
) , ( ).
2. , , .
3. , , , , .
, , , ..
( ), , .
, FIFO (First In, First Out) ( ), .
, , , .
, . , , - , . , , .. .
|
|
, , , .
, , .
, , :
struct Spis {
int info;
Spis *Next;
};
Spis *begin, *end;
begin end , .. :
inf Next (A 1, A 2, ...) .
:
;
;
.
: , .
, (NULL). :
1) ( i);
2) , :
t = (Spis*) malloc(sizeof(Spis)); t = new Spis;
( 1) ;
3) :
t -> info = i; ( i 1)
4) NULL:
t -> Next = NULL;
5) t:
begin = end = t;
:
.
1. () i.
2. :
t = (Spis*) malloc (sizeof(Spis)); t = new Spis;
3. ( i 2):
t -> info = i;
4. () NULL, .. :
t -> Next = NULL;
5. , end :
end -> Next = t;
.
6. :
end = t;
, 1 6 . .
, :
void Create(Spis **begin, Spis **end) {
Spis *t = (Spis*) malloc(sizeof(Spis));
printf(\n Input Info );
scanf(%d, &t -> info);
t -> Next = NULL;
if(*begin == NULL) //
|
|
*begin = *end = t;
else {
(*end) -> Next = t; //
*end = t;
}
}
Create :
¼
Spis *begin = NULL, *end;
int repeat = 1;
while(repeat) { // repeat=1
Create(&begin, &end);
printf( Stop - 0 ); // repeat=0
scanf(%d, &repeat);
}
¼