Приклад .
#include <iostream.h>
#include <conio.h>
struct person
{
int dat;
person *next;
};
void Add_stack(person *&elem,person *&stack)
{
if (stack!=0) elem->next = stack;
stack = elem;
}
void print_stack(person *&stack)
{
while (stack->next!=0)
{
cout<<stack->dat<<" ";
stack = stack->next;
}
getch();
}
void main()
{
clrscr();
int data=10;
person *elem;
person *stack;
do
{
if (data!=0)
{ elem = new(person);
elem->dat = data;
Add_stack(elem,stack); }
data--;
}
while (data!=0);
print_stack(stack);
}
Результат робот прграми: 1 2 3 4 5 6 7 8 9 10
Спочатку в список добавляється елемент 10, потім 9, …. Тобто кожен наступний елемент добавляється на початок списку. Самий останній елемент буде на першому місці, тобто вийде зі списку самим першим. Стек – це список, що працює за принципом «перший зайшов – останній вийшов»
Процедуру void Add_stack(person *&elem,person *&stack) добавляє елемент elem на початок списку stack (elem->next = stack). Після цього необхідно направити вказівник stack на елемент elem, який є початком списку (stack = elem).
Черга.
Черга - це структура даних, у якій елемент, записаний першим, зчитують першим. Тут діє принцип "перший прийшов - перший пішов", добре відомий з побуту: черга у магазині тощо.
Чергу, як і стек, описують з використанням структури. Над елементами черги визначені операції: занесення елемента у чергу та забирати з черги. У черзі доступним є лише нижній елемент.
Приклад. Оголосимо нову структуру tsherga та два вказівники на цей тип
struct tsherga
{
char ch; .
stack *dali;
};
tsherga *tsh, "element;
У цьому випадку, наприклад, створити відповідну чергу tsh можна за допомогою функції:
tsherga *StvorytyTshergu(void)
{
char a;
element = new (tsherga);
// Запам'ятовуємо адресу першого елемента черги
pershij = element;
сіп >> а;
while(a != '.') // Поки не введена крапка
(
element->ch = а; // Заповнюємо елементи черги
element -> dali = new (tsherga);
element = element -> dali;
cin » a; // Вводимо наступну літеру
}
element = NULL; return pershij; }
Забирати елемент із черги можна за допомогою функції
void VyluchenniaZTshergu(tsherga *tsh)
{
while (tsh != NULL)
{
element = tsh;
cout<< element -> ch;
tsh = element -> dali;
Максимально допустимі розміри стека і черги - важливі характеристики реалізації мови програмування. Вони визначають коло задач, які можна розв'язати.
Дата добавления: 2015-08-26; просмотров: 541;