: .
1. :
void Add(Queue **Begin, Queue **End, Data &x)
{
Queue *t = new Queue; //
t->d.a = x.a; //
if(*Begin == NULL || *End == NULL)
{
//
t->prev = NULL;
t->next = NULL;
*Begin = *End = t;
return;
}
//
t->prev = *End; //
(*End)->next = t;
t->next = NULL;
*End = t; //
}
:
Add(&Begin, &End, x);
x Data.
, , . ? , . Begin .
2. :
bool Del(Queue **Begin, Queue **End, Data &x)
{
if(*Begin == NULL)
{
cout << "Pustaj Ocheredj" << endl;
return false;
}
Queue *t = *Begin;
x.a = t->d.a; //
*Begin = t->next;
if(*Begin == NULL) //
*End = NULL;
delete t;
return true;
}
:
Del(&Begin, &End, x);
x Data.
. , .
, (Data () Queue ()), .
: ( ), ( ) .
, .
. , - .
, - , , , .
, , , . ( , ) .
. , . . , 3, -4, 2, -6, : -4, -6, 3, 2.
|
|
, .
, , . , :
, . A. , , , -. , D A, G D .. () . (-). , A B, C D, B E F .. , , . E, F, C, G, J I.
. . A, D, H J, .. 3.
, ( ). , , D ( D, G, H, I, J).
. A D 3, B 2, H 1, ( E, F, C, G, J I) 0. . - n, n- . 3 (- A D), .
2 . , , . , 2, , 5- , , , , .
, - , , - (). , . .