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

Стек на основе связанного списка 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 для выделения памяти ... подробнее

Показать сообщение отдельно
Vladimir.
157 / 157 / 10
Регистрация: 24.11.2009
Сообщений: 375
27.11.2009, 21:36
Цитата Сообщение от Koketka Посмотреть сообщение
вообще в задании написано просто связанный список, но думаю что там имеется ввиду двунапраленный...
Нет, это я ошибся - односвязный список вполне подходит;

Я хочу извиниться за лень - комментарии не выписывал сильно, думаю, что проблем с прочтением кода у Вас не будет.

Общий принцип: вот был у нас пустой стек, потом положили в него элемент. Элемент, помимо полезной информации хранит вспомогательную. Так же есть указатель на активный (верхний) в данный момент элемент. Пусть их положили в порядке 1, 2, 3. Тогда активным будет третий элемент, следующим (next) за ним будет второй, следующим для второго будет первый, для первого следующим будет NULL; Опять же, по причине лени проверку на пустоту стека и сборку мусора вынес в отдельную функцию. По хорошему, нужно добавить счётчик элементов, дабы стек не разползся на всю доступную память. Ну и вообще прекрасно было бы "завернуть в обёртку".... Если возникнут вопросы - ю уелкам...

спойлер
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
34
35
struct lls
{
    some_type data;
    lls* next;
};
 
lls* active_plate = NULL;   
 
void push(lls* tmp)
{
    lls* plate new lls;
    plate->data = tmp->data;
    plate->next = active_plate;
    
    active_plate = plate;
}
 
lls* pop()
{
    lls* tmp;
    tmp = active_plate;
    active_plate = active_plate->next;
    
    return tmp;
}
 
bool is_empty()
{
    return (active_plate==NULL)?true:false;
}
 
void clean(lls* tmp)
{
    delete tmp; 
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru