.


:




:

































 

 

 

 





, .

, , . .

: , . , . .

 

 

.

1. , . ( main() ). :

struct Data

{

int a; //

};

struct DList

{

Data d;

DList *prev; //

DList *next; //

};

2. :

DList *Begin = NULL; //

DList *End = NULL; //

3. - . , . 3, 5 1:

//

DList *t = new DList;

t->d.a = 3;

t->prev = NULL;

t->next = NULL;

 

//

Begin = t;

End = t;

//++++++++++++++++++++++++ +++++++++++++++

//

t->next = new DList;

DList *p = t;

t = t->next;

t->prev = p;

t->d.a = 5;

t->next = NULL;

End = t;

 

//

t->next = new DList;

p = t;

t = t->next;

t->prev = p;

t->d.a = 1;

t->next = NULL;

End = t;

, . .

1. :

void print_forward(DList *Begin)

{

DList *p = Begin;

cout << "Spisok (forward):" << endl;


while(p)

{

cout << p->d.a << endl;

p = p->next;

}

}

:

print_forward(Begin);

, print() .

2. :

void print_back(DList *End)

{

DList *p = End;

cout << "Spisok (back):" << endl;

while(p)

{

cout << p->d.a << endl;

p = p->prev;

}

}

:

print_back(End);

. , :

p = p->prev;

, .

, . , . .

( , , .. 3, 5, 1, 9):

(Data List), . :

List *u = NULL;

. , , 9 , :

x->next = u;

.

, , : , , , . c:

void printC(List *u)

{

if(u!= NULL)

{

List *p = u;

cout << "Kolcevoj Spisok:" << endl;

cout << p->d.a << endl;

p = p->next;

while(p!= u)

{

cout << p->d.a << endl;

p = p->next;

}

}

else

cout << "Spisok pust." << endl;

}

:

printC(u);

, , , .

.

, : . , , .

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

. Data Stack:

struct Data

{

int a;

};

 

struct Stack

{

Data d;

Stack *next;

};

:

Stack *u = NULL;

.

1. . Push() push, .

void Push(Stack **u, Data &x)

{

Stack *t = new Stack; //

t->d.a = x.a; //

t->next = *u; //

*u = t; //

}

:

Push(&u,x);

x Data.

2. . ( pop ).

bool Pop(Stack **u, Data &x)

{

if(*u == NULL)

{

cout << "Pustoj Stack" << endl;

return false;

}

Stack *t = *u;

x.a = t->d.a; //

*u = t->next; //

delete t; //

return true;

}

:

Data y;

if(Pop(&u, x))

{

y = x;

cout << "y=" << y.a << endl;

}

( ) . , . :

bool Read(Stack **u, Data &x)

{

if(*u == NULL)

{

cout << "Pustoj Stack" << endl;

return false;

}

Stack *t = *u;

x.a = t->d.a; //

return true;

}

Read() Pop().

, : , () . FIFO (First Input First Output, .. ).

.

, , : . , : . . ? . .

. , , : 3, 5, 1.

Data () Queue ():

struct Data

{

int a;

};

struct Queue

{

Data d;

Queue *prev; //

Queue *next; //

};

:

Queue *Begin = NULL; //

Queue *End = NULL; //

.





:


: 2016-09-06; !; : 824 |


:

:

,
==> ...

1339 - | 1305 -


© 2015-2024 lektsii.org - -

: 0.024 .