Форум программистов, компьютерный форум, киберфорум
C (Си)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для AnSm
3 / 3 / 2
Регистрация: 30.09.2013
Сообщений: 32

Реализация стека с использованием двунаправленного списка

20.10.2013, 16:52. Показов 2130. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Нужно разработать подпрограммы работы со стеком, которые обеспечивают запись и чтение(стек организован на массиве с использованием двунаправленного списка). У меня есть кусочки кода:
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
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N=5
 
struct Node {
char data;
Node *next, *prev;
}
Node[N];
 
typedef Node *PNode;
struct Stack {
PNode Head, Tail;
};
 
void vvid()
{
    int i;
    FILE *fp;
    fp = fopen("stek.txt", "rb");
    for(i = 0; i < N; ++i)
    {
        fscanf(fp, "%s", Node[i].data);
        }
C
1
2
3
4
5
6
7
8
9
10
11
12
void Push( Stack &S, char x('f') //добавление элемента на вершину стека
{
PNode NewNode;
NewNode = new Node; // создать новый узел
NewNode->data = x; //  заполнить его данными
NewNode->next = S.Head;
NewNode->prev = NULL;
if ( S.Head ) // добавить в начало списка
S.Head->prev = NewNode;
S.Head = NewNode;
if ( ! S.Tail ) S.Tail = S.Head;
}
C
1
2
3
4
5
6
7
8
9
10
11
12
13
char Pop( Stack &S ) //получение верхнего элемента с вершины
{
PNode TopNode = S.Head;
char x;
if ( ! TopNode ) // если стек пуст, то
return char(255); // вернуть символ с кодом 255
x = TopNode->data;
S.Head = TopNode->next;
if ( S.Head ) S.Head->prev = NULL; // переставить ссылки
else S.Tail = NULL;
delete TopNode; // освободить память
return x;
}
Помогите, пожалуйста, собрать это все в кучу так, чтобы при записи элемента на экран выводился весь стек, а при чтении - последний элемент.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.10.2013, 16:52
Ответы с готовыми решениями:

Динамическая реализация стека на основе списка
Реализация стека с помощью динамических структур (списка) . Добавить элемент в стек ,удаление элемента из стека,проверка пустой ли стек...

Реализация стека на основе односвязного списка
typedef int Data; typedef struct Stack * pStack; pStack CreateStack(Data val); int Push(pStack This, Data val); void ...

Реализация двунаправленного списка на C#
Помоги, пожалуйста. Как реализовать процедуры перемещения элементов двунаправленного списка в очередь и наоборот, чтобы список...

3
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
20.10.2013, 17:19
Цитата Сообщение от AnSm Посмотреть сообщение
стек организован на массиве с использованием двунаправленного списка
Стек можно организовать или на массиве, или на связанном списке, но не на том и другом одновременно. Определитесь как-нибудь...
0
202 / 200 / 65
Регистрация: 06.10.2013
Сообщений: 552
20.10.2013, 17:27
бросилось в глаза:
C
1
void Push( Stack &S, char x('f'){...
параметры по умолчанию не так задаются, да и в чистом си, насколько я помню, их нет)
0
 Аватар для AnSm
3 / 3 / 2
Регистрация: 30.09.2013
Сообщений: 32
20.10.2013, 17:35  [ТС]
Ошибка в задании(
значит мне нужно на двунаправленном списке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.10.2013, 17:35
Помогаю со студенческими работами здесь

Реализация Двунаправленного списка
Ребят, что он хочет от меня, ошибка компиляции, понять не могу в чем проблема, у меня еще просто компилятор не пишет причину ошибки а...

Реализовать стек на массиве с использованием двунаправленного списка
здраствуйте, может кто-то пожалуйста привести реализацию примера стека, реализованого на массиве с использиванием...

Создание двунаправленного списка с использованием malloc(), free()
При заполнении списка вылазит ошибка &quot;Вызвано исключение по адресу 0x0FE7373F (vcruntime140d.dll) в файл.exe: 0xC0000005: нарушение прав...

Пример использование стека на основе массива и на основе двунаправленного списка
здраствуте, можете привести примеры использывания стека на основе массива(1 код) и стек на основе двунаправленного списка(2...

Реализация стека и очереди на основе списка
1. Создать базовый класс CList (линейный однонаправленный cписок) с полями: указате-ли на следующий элемент; информационная часть –...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru