Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
1

Стеки

14.12.2011, 17:39. Показов 2533. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
Создать класс типа - стек. Функции-члены вставляют элемент в стек, вытаскивают элемент из стека. Проверяют вершину стека.
Помогите пожалуйста с этой задачей, а то я не могу разобраться, заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2011, 17:39
Ответы с готовыми решениями:

стеки
Здравствуйте. Я создал шаблон класса стек. Как мне перегрузить операторы -- и += для извлечение и...

Стеки
Реализовать программу, в которой будут использоваться стеки (магазинный и кольцевой) и очередь. В...

Стеки
Помогите разобраться со стеками.Вылетает 3 ошибки при компеляции. #include <stdio.h> #include...

Стеки на С!
Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и...

21
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 18:09 2
Код не вылизан но для общего понимания придатен - попробуйте так:

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
#include <iostream.h>
class IntVal{
    int Number;
public:
    IntVal *curr;
    IntVal *prev;
 
    IntVal(){
        curr = NULL;
    }
    Push(int N){
        prev = curr;
        curr = new IntVal();
        curr->Number = N;
        curr->prev = prev;
    }
    int Pop(){
        cout << curr->Number;
        delete curr;
        curr = curr->prev;
        if (curr == NULL)
            return 0;
    }
};
0
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 18:32  [ТС] 3
[Linker Error] Unresolved external '_main' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\C0X32.OBJ

Вот такую ошибку выдает
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 18:36 4
Я так понимаю Вы просто скопировали код..Как видите там нет точки входа в програму ( функции main)

Решение: Добавьте в конце вот такую фичу )

C++
1
2
3
4
5
6
7
8
9
10
11
int main(int argc, char* argv[])
{
    int i = 5;
    IntVal *Stack = new IntVal();
    while(i){
        Stack->Push(i--);
    }
    while(Stack->Pop());
    delete Stack;
    return 0;
}
0
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 18:46  [ТС] 5
спасибо но почему то ругается на
C++
1
 cout<< curr->Number;
Добавлено через 6 минут
[C++ Warning] Unit1.cpp(17): W8070 Function should return a value
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 19:26 6
Попробуй с Паузой..

C++
1
2
3
4
5
6
7
8
9
10
11
12
int main(int argc, char* argv[])
{
    int i = 5;
    IntVal *Stack = new IntVal();
    while(i){
        Stack->Push(i--);
    }
    while(Stack->Pop());
    delete Stack;
    system("pause");
    return 0;
}
0
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 19:41  [ТС] 7
а у вас она запускается? у меня та же ошибка
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 21:47 8
[C++ Warning] Unit1.cpp(17): W8070 Function should return a value

Как бы не ошибка а предупреждение..запускается все хорошо. У вас програма компилируется?

Добавлено через 4 минуты
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
//---------------------------------------------------------------------------
#include <iostream.h>
using namespace std;
class IntVal{
    int Number;
public:
    IntVal *curr;
    IntVal *prev;
 
    IntVal(){
        curr = NULL;
    }
    int Push(int N){
        prev = curr;
        curr = new IntVal();
        curr->Number = N;
        curr->prev = prev;
        return 0;
    }
    int Pop(){
        cout << curr->Number << endl;
        delete curr;
        curr = curr->prev;
        if (curr == NULL)
            return 0;
    }
};
int main(int argc, char* argv[])
{
    int i = 5;
    IntVal *Stack = new IntVal();
    while(i){
        Stack->Push(i--);
    }
    while(Stack->Pop());
    delete Stack;
    system("pause");
    return 0;
}
//---------------------------------------------------------------------------
Все запустилось.
0
48 / 48 / 24
Регистрация: 29.10.2011
Сообщений: 154
14.12.2011, 21:51 9
stl stuck?
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 21:58 10
Насколько я понял надо простенький клас..ничего особенного
0
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 22:18  [ТС] 11
она компилируется, запускается консоль и выдает ошибку.

Добавлено через 6 минут
А в какой среде вы писали данную программу? У меня Builder 6
И что должно быть написано в консольном окне? у меня просто выдает 1, и ошибку
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
14.12.2011, 22:31 12
[C++ Warning] Unit1.cpp(17): W8070 Function should return a value
Как бы не ошибка а предупреждение..запускается все хорошо. У вас програма компилируется?
Наплевательское отношение к ворнингам до добра не доводит. Все вроде компилится, но работает не прваильно. Неужели так сложно перевести что тут написано, что ф-ия должна возвращать значение? Смотрим на ф-ию int Pop() и видим, что return у нее не всегда отрабатывает, а только когда стек уже пустой. А когда не пустой что возвращается? В некоторых системах программа в таких случаях просто крашится. В общем, это надо исправить.
1
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 22:36  [ТС] 13
а как исправить?
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
14.12.2011, 22:57 14
если в ф-ии нет строчки с ретурном а компилятор на это ворнинг выдает, то, очевидно, строчку с ретурном нужно куда-нибудь довабить. например в конец этой ф-ии
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 23:06 15
спасибо за замечание...

Без варнингов
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
#include <iostream.h>
using namespace std;
class IntVal{
    int Number;
public:
    IntVal *curr;
    IntVal *prev;
 
    IntVal(){
        curr = NULL;
    }
    int Push(int N){
        prev = curr;
        curr = new IntVal();
        curr->Number = N;
        curr->prev = prev;
        return 0;
    }
    int Pop(){
        cout << curr->Number << endl;
        delete curr;
        curr = curr->prev;
        if (curr == NULL)
            return 0;
        else
            return 1;
    }
};
int main(int argc, char* argv[])
{
    int i = 5;
    IntVal *Stack = new IntVal();
    while(i){
        Stack->Push(i--);
    }
    while(Stack->Pop());
    delete Stack;
    system("pause");
    return 0;
}
0
48 / 48 / 24
Регистрация: 29.10.2011
Сообщений: 154
15.12.2011, 13:11 16
Цитата Сообщение от YouDoItWrong Посмотреть сообщение
stl stuck?
Цитата Сообщение от Dr.Urban Посмотреть сообщение
Насколько я понял надо простенький клас..ничего особенного
Ну я просто это неписал к тому, что уже к готовому шаблону можно приписать свой функционал, не изобритая велосипедов.
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
15.12.2011, 15:40 17
Я так понимаю человеку не надо сам велосипед а надо разобраться как он работает, чтобы сам мог собрать такой..
0
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
15.12.2011, 16:11  [ТС] 18
весьма благодарен за помощь, но у меня все же те же ошибки, объясните пожалуйста что должна выводить эта программа
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
16.12.2011, 00:37 19
Можно их как нибуть увидеть? или же укажите место где ошибки. У меня все чистенько, жду..
0
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
16.12.2011, 00:57  [ТС] 20
вот фото с ошибкой
Миниатюры
Стеки  
0
16.12.2011, 00:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2011, 00:57
Помогаю со студенческими работами здесь

Стеки С++
Добрый вечер.Задание следующие нужно сделать добавление в стек после елемента L.Дано 2 стека X Y из...

Стеки
Здравствуйте, помогите пожалуйста осилить задачу. Задача: Вот то что я написал, а дальше что то...

Стеки
помогите пожалуйста вот что получилось, не могу довести до ума) может кто поможет) задание: Дано...

Стеки
Сделал очередь, а вот кольцевой не получается, подскажите как сделать. #include &lt;iostream&gt;...

стеки
Здравствуйте можете объяснить что такое стек как структура данных , как его создать и как его можно...

стеки
создать файл записей с полями: фамилия, возраст. за один просмотр файла вывести фамилии наиболее...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru