Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/48: Рейтинг темы: голосов - 48, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 10

Инициализация, добавление и удаление элементов в СТЕКЕ

05.02.2013, 18:26. Показов 8882. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый,
нужна помощь со стеками.
Передо мною стоит задача:
1) Инициализировать СТЕК через связный список
2) Добавить элемент в СТЕК, вывести на экран СТЕК
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// Stack (Test).cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
 
const int del = 3;      //number of elements that we will delete
 
struct STACK
{
    float Value;
    STACK *Link;
};
 
struct Using_Stack
{
    STACK *Top, *Bot;
    void (*Init)(Using_Stack*);
    void (*Push)(Using_Stack*, float );
    float (*Pop)(Using_Stack*);
};
 
void Init_Sub (Using_Stack *MyStack)
{
    MyStack->Top = 0;   
    MyStack->Bot = 0;   
};
 
void Push_Sub (Using_Stack *MyStack, float Character)
{
    STACK *New_El = new STACK;
    New_El->Value = Character;
    New_El->Link = 0;
    if (MyStack->Top == 0)
    {
        MyStack->Top = New_El;
        MyStack->Bot = New_El;
    }
    else
    {
        MyStack->Bot->Link = New_El;
        MyStack->Bot = New_El;
    }
};
 
float Pop_Sub (Using_Stack *MyStack)
{
    STACK *Del;
    float Reading;
    if (MyStack->Top != 0)
    {
        Del = MyStack->Top;
        Reading = Del->Value;
        MyStack->Top = MyStack->Top->Link;
        delete Del;
    }
    return Reading;
};
 
void main ()
{
    Using_Stack *MyStack;
    MyStack = new Using_Stack;
 
    MyStack->Init = Init_Sub;
    MyStack->Push = Push_Sub;
    MyStack->Pop = Pop_Sub;
 
    MyStack->Init (MyStack);    //Initialization of Top and Bot
    int Add;
    float Symb;
    int i = 0;
 
    MyStack->Push (MyStack, 10);        //Recording of one value
    MyStack->Push (MyStack, 20);
 
    printf("Our Stack is...");
    printf("\n\n %c", MyStack->Top->Value);
    printf("\n %c", MyStack->Top->Link->Value);
    printf("\n\n Enter the value you want to ADD \n");
    scanf_s("%c", &Symb);
    MyStack->Push (MyStack,Symb);
 
    printf("\n\n So, now our Stack is");
    printf("\n\n %c", MyStack->Top->Value);
    printf("\n %c", MyStack->Top->Link->Value);
    printf("\n %c \n\n", MyStack->Top->Link->Link->Value);  //???
 
    printf("\n And now we will DELETE one value \n\n\n");
    float Read;
    Read = MyStack->Pop (MyStack);      //Reading of one value
    printf("\n Value which we will delete is - ");
    printf("%c \n\n", Read);
    printf("And now, our Stack is");
    printf("\n\n %c", MyStack->Top->Value);
    printf("\n %c \n\n\n", MyStack->Top->Link->Value);
    
}
Буду благодарен за помощь.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.02.2013, 18:26
Ответы с готовыми решениями:

Добавление элементов к дереву, удаление элементов и поиск уровня с наибольшей суммой элементов
Помогите пожалуйста! нужно разработать программу для работы с деревом. В узлах дерева содержатся символы. Дерево должно быть...

Двунаправленный список (добавление/удаление элементов в голову, просмотр списка, реализовать дублирование элементов с заданным значением)
Здравствуйте! Помогите написать программу, обеспечивающую работу с двунаправленным нециклическим списком: добавление/удаление элементов в...

Добавление, удаление элементов в дереве
Сформировать массив записей, описывающих следующую таблицу:Фамилия, Адрес, N телефона. Удалить из массива тех абонентов, телефон которых ...

1
165 / 164 / 23
Регистрация: 23.02.2011
Сообщений: 347
05.02.2013, 19:06
Лучший ответ Сообщение было отмечено victor72 как решение

Решение

Все намного проще
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
36
37
38
39
40
41
42
43
#include <iostream>
 
struct stack{
    float value;
    stack *next;
};
 
void push(stack *&s, float v){
    stack* n = new stack;
    n -> value = v;
    n -> next = s;
    s = n;
}
 
bool pop(stack *&s, float &dest){
    if (s == 0)
        return false;
    stack* toDel = s;
    float toRet = toDel -> value;
    s = s -> next;
    delete toDel;
    dest = toRet;
    return true;
}
 
using namespace std;
 
int main(){
    stack *s = NULL;
    float n=0;
    cout << "input\n";
    do{
        cin >> n;
        push(s,n);
    }
    while(n != 0);
    cout << "output\n";
    while(pop(s,n)){
        cout << n << ' ';
    }
    cout << "\nend\n";
    return 0;
}
Добавлено через 4 минуты
и если ты хочешь запихнуть в структуру функцию aka метод класса, то это делается вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
struct foo{
    void bar(){
        cout << "foobar\n";
    }
};
 
int main(){
    foo f;
    f.bar();
    return 0;
}
То, что ты написал имеет смысл, только если функция в структуре будет меняться в противном случае это пустая трата памяти на уазатели.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2013, 19:06
Помогаю со студенческими работами здесь

Удаление и добавление элементов массива
Суть задачи: объявить и сформировать одномерный массив вещественных чисел. Количество элементов вводится пользователем с клавиатуры....

Удаление и добавление элементов однонаправленного списка
Здравствуйте уважаемые гуру. Хотелось бы попросить вашей помощи в данном задании: Записи в линейном списке содержат ключевое поле типа...

Добавление и удаление элементов дин массива
Задание: Создать класс «машина», имеющая марку, число цилиндров, мощность и цену. Определить конструктор и функцию печати. Создать...

Добавление и удаление элементов в середину списка
Доброго всем времени суток!! Есть прога добавления и удаления элементов в списке, из начала, конца. А вот с серединой что-то туговато.. Кто...

Добавление и удаление элементов из двусвязного списка
Разбираю списки. Посмотрите код правильно ли я все понимаю?))) путаюсь с указателями. может можно проще чтото сделать? struct st { ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru