ВУЗ:
Составители:
Рубрика:
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
Для добавления создается новый элемент списка (переменная p). Новый
элемент добавляется в начало списка. Для этого он связывается с прежним
первым элементом (p->next=s.head), и заголовок списка изменяется, ука-
зывая на новый элемент (s.head=p).
// определение функции добавления в стек нового элемента
void PushStack(Stack& s, int key)
{
Node* p=new Node;
p->next=s.head;
p->info=key;
s.head=p;
}
При извлечении элемента из стека возможны два случая: стек пуст или
стек не пуст. Поэтому кроме извлекаемого значения приходится формировать
еще и код возврата (в нашем примере – это возвращаемое значение функции).
Код возврата будет равен -1, если стек был пуст, в противном случае он будет
равен 1. Извлекаемое из стека значение будет возвращаться через параметр
функции n. Вершиной стека станет следующий элемент списка, а бывшая
вершина стека будет удалена.
// определение функции извлечения элемента из стека
int PopStack(Stack& s, int& n)
{
// проверка стека на пустоту
if(s.head==NULL) return -1;
n=s.head->info;
Node* p=s.head;
s.head=s.head->next;
delete p;
return 1;
}
Задача 2. Написать функции добавления и извлечения элемента из очере-
ди. Очередь реализовать в виде односвязного списка.
Структура элемента очереди будет той же, что и в задаче 1.
struct Node
{
int info;
Node* next;
};
70
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
Для добавления создается новый элемент списка (переменная p). Новый
элемент добавляется в начало списка. Для этого он связывается с прежним
первым элементом (p->next=s.head), и заголовок списка изменяется, ука-
зывая на новый элемент (s.head=p).
// определение функции добавления в стек нового элемента
void PushStack(Stack& s, int key)
{
Node* p=new Node;
p->next=s.head;
p->info=key;
s.head=p;
}
При извлечении элемента из стека возможны два случая: стек пуст или
стек не пуст. Поэтому кроме извлекаемого значения приходится формировать
еще и код возврата (в нашем примере – это возвращаемое значение функции).
Код возврата будет равен -1, если стек был пуст, в противном случае он будет
равен 1. Извлекаемое из стека значение будет возвращаться через параметр
функции n. Вершиной стека станет следующий элемент списка, а бывшая
вершина стека будет удалена.
// определение функции извлечения элемента из стека
int PopStack(Stack& s, int& n)
{
// проверка стека на пустоту
if(s.head==NULL) return -1;
n=s.head->info;
Node* p=s.head;
s.head=s.head->next;
delete p;
return 1;
}
Задача 2. Написать функции добавления и извлечения элемента из очере-
ди. Очередь реализовать в виде односвязного списка.
Структура элемента очереди будет той же, что и в задаче 1.
struct Node
{
int info;
Node* next;
};
70
Страницы
- « первая
- ‹ предыдущая
- …
- 68
- 69
- 70
- 71
- 72
- …
- следующая ›
- последняя »
