Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа с описанными шаблонами структур и их массивом http://www.cyberforum.ru/cpp-beginners/thread67967.html
Написать программу, отвечающую следующим требованиям: 1. Наличие внешне описанного шаблона структуры name с двумя элементами: строкой для имени и строкой для фамилии. 2. Наличие внешне описанного шаблона структуры data с тремя элементами: число (1...31), месяц (1...12), год (1900...2100) 3. Наличие внешне описанного шаблона структуры anketa с тремя элементами: структурой name, pol (м.ж.),...
C++ Меню Программа должна содержать меню. В последовательности целых чисел определить количество элементов, значения которых находятся в интервале и среди них определить максимальный. Помогите пожалуйста!!! http://www.cyberforum.ru/cpp-beginners/thread67966.html
Рекурсия: найти n-й член геометрической прогрессии C++
Используя рекурсивную функцию, найти n-й член геометрической прогрессии с заданным первым членом b и знаменателем прогрессии q. Заранее благодарствую-)))
C++ Определить, какая цифра в заданном числе встречается чаще других
Дано натуральное число. Определить, какая цифра в этом числе встречается чаще других. Помогите плс с решением-))заранее спс
C++/CLI Как создать (проинициализировать) глобальную переменную или глобальный класс управляемого типа? http://www.cyberforum.ru/cpp-beginners/thread67942.html
Hi! Нужна помощь: Как создать(проинициализировать) глобальную переменную или глобальный класс управляемого типа (CLR)??? В Visual c++ 2008 создал проект «Приложение Windows Forms” (CLR); В проекте два окна Form1 и Form2 и файл с C++ классом, необходимо из Form1 послать данные в переменную класса data_SQL->dSet а затем получить эти данные в Form2. (adata.h) #pragma once using namespace...
C++ Нужно посчитать сумму Я только начал изучение С++ и вообще программирования поэтому не судите строго! Мне надо найти сумму всех чисел от 1/1^2 до 1/n^2. n мы вводим! помогите пожалуйста! просто вывести эти числа у меня получилось а как их сложить??? подробнее

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

Добавлено через 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 минут
Вот что нашла в нете по своему вопросу:

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