Форум программистов, компьютерный форум, киберфорум
Наши страницы

Стек на основе связанного списка C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа с описанными шаблонами структур и их массивом http://www.cyberforum.ru/cpp-beginners/thread67967.html
Написать программу, отвечающую следующим требованиям: 1. Наличие внешне описанного шаблона структуры name с двумя элементами: строкой для имени и строкой для фамилии. 2. Наличие внешне описанного...
C++ Меню Программа должна содержать меню. В последовательности целых чисел определить количество элементов, значения которых находятся в интервале и среди них определить максимальный. Помогите пожалуйста!!! http://www.cyberforum.ru/cpp-beginners/thread67966.html
Рекурсия: найти n-й член геометрической прогрессии C++
Используя рекурсивную функцию, найти n-й член геометрической прогрессии с заданным первым членом b и знаменателем прогрессии q. Заранее благодарствую-)))
C++ Определить, какая цифра в заданном числе встречается чаще других
Дано натуральное число. Определить, какая цифра в этом числе встречается чаще других. Помогите плс с решением-))заранее спс
C++ Нужно посчитать сумму http://www.cyberforum.ru/cpp-beginners/thread67937.html
Я только начал изучение С++ и вообще программирования поэтому не судите строго! Мне надо найти сумму всех чисел от 1/1^2 до 1/n^2. n мы вводим! помогите пожалуйста! просто вывести эти числа у меня...
C++ Расширение динамического массива В С для работы с динамической памятью используются операторы: malloc,calloc для выделения памяти realloc для изменения размера free для освобождения В С++: new для выделения памяти ... подробнее

Показать сообщение отдельно
Koketka
5 / 5 / 0
Регистрация: 27.11.2009
Сообщений: 232
27.11.2009, 18:48  [ТС]
вообще в задании написано просто связанный список, но думаю что там имеется ввиду двунапраленный...

Добавлено через 27 минут
Вот так я написала на основе массива:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<stdio.h>
#include<iostream.h>
#include<fstream.h>
 
struct Stack {
  int left, right;
  Stack *p;
};
 
Stack *top = 0;            
Stack *push(Stack *top, const int l, const int r);
Stack *pop(Stack *top, int &l, int &r);
 
int main() {
 ...
}
 
/*стек на основе массива занесение*/
Stack *push(Stack *top, const int l, const int r) {
  Stack *pv = new Stack;
  pv->left = l;
  pv->right = r;
  pv->p = top;
}
 
/*стек на основе массива выборка*/
Stack *pop(Stack *top, int &l, int &r) {
  Stack *pv = top->p;
  l = top->left;
  r = top->right;
  delete top;
  return pv;
}
Добавлено через 36 минут
Вот что нашла в нете по своему вопросу:

Вы можете управлять двумя стеками в одном массиве, размещая один в начале
массива, а другой - в конце. Сохраните отдельные счетчики вершин для каждого
стека, и сделайте так, чтобы стеки росли друг к другу. Этот
метод позволяет двум стекам увеличиваться, занимая один и тот же массив памя-
ти до тех пор, пока они не столкнутся друг с другом в тот момент, когда массив
полностью заполнится.
К сожалению, менять размер подобных стеков непросто. Вы должны выделить
массив под новый стек и скопировать все элементы старого массива в новый. Из-
менение размера больших стеков может занимать очень много времени. Данный
способ совсем не подходит для управления несколькими стеками.
Связанные списки предоставляют более гибкий метод формирования несколь-
ких стеков. Чтобы протолкнуть элемент в стек, надо вставить его в начало связан-
ного списка. Чтобы вытолкнуть элемент из стека, следует удалить первый элемент
связанного списка. Поскольку все элементы добавляются и удаляются только в на-
чале списка, для реализации стеков такого типа не нужны метки или двусвязные
списки. Стеки, строящиеся на связанных списках, не требуют сложных схем пере-
распределения памяти, применяющихся в стеках на основе массивов.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru