Свързан Стек
18.Свързан Стек
typedef int INFO_TYPE struct Stack_el { INFO_TYPE info; Stack_el *link; };
За определянe указател към върха на стека( указател към указател ). Само указател не може, защото функцията като добави елемент тя променя указателя към върха на стека, ако се програмира на С друг начин няма, но за С++ може със псевдоним.
void push( Stack_el **t, INFO_TYPE x ) { Stack_el *p; if ( ( p = new Stack_el ) == NULL ) // това на С не върви.. { cout << “\n Няма свободна памет.. \n”; exit(1); } p->info = x; p->link = *t; *t = p; } INFO_TYPE pop(Stack_el **t ) { Stack_el * p; INFO_TYPE x; if ( *t == NULL ) { cout << “\nСтекът е празен\n ”; exit(1); } p = *t; *t = p->link; x = p->info; delete p; return x; } void main() { INFO_TYPE x = 3, y; Stack_el *stack = NULL; // създаване на празен стек.. push( &stack, x ); y = pop( &stack ); }
< картинка.. >
page revision: 4, last edited: 20 Feb 2009 09:23





