Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
KVANTA
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
1

Стеки

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

C++
1
Создать класс типа - стек. Функции-члены вставляют элемент в стек, вытаскивают элемент из стека. Проверяют вершину стека.
Помогите пожалуйста с этой задачей, а то я не могу разобраться, заранее спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2011, 17:39
Ответы с готовыми решениями:

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

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

Стеки
Вот код как к первому стеку прикрипить 2 стек?????? #include "stdafx.h"...

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

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

21
Dr.Urban
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
KVANTA
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
Dr.Urban
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
KVANTA
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
Dr.Urban
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
KVANTA
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 19:41  [ТС] 7
а у вас она запускается? у меня та же ошибка
0
Dr.Urban
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
YouDoItWrong
47 / 47 / 24
Регистрация: 29.10.2011
Сообщений: 154
14.12.2011, 21:51 9
stl stuck?
0
Dr.Urban
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 21:58 10
Насколько я понял надо простенький клас..ничего особенного
0
KVANTA
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 22:18  [ТС] 11
она компилируется, запускается консоль и выдает ошибку.

Добавлено через 6 минут
А в какой среде вы писали данную программу? У меня Builder 6
И что должно быть написано в консольном окне? у меня просто выдает 1, и ошибку
0
DU
1488 / 1134 / 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
KVANTA
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 22:36  [ТС] 13
а как исправить?
0
DU
1488 / 1134 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
14.12.2011, 22:57 14
если в ф-ии нет строчки с ретурном а компилятор на это ворнинг выдает, то, очевидно, строчку с ретурном нужно куда-нибудь довабить. например в конец этой ф-ии
0
Dr.Urban
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
YouDoItWrong
47 / 47 / 24
Регистрация: 29.10.2011
Сообщений: 154
15.12.2011, 13:11 16
Цитата Сообщение от YouDoItWrong Посмотреть сообщение
stl stuck?
Цитата Сообщение от Dr.Urban Посмотреть сообщение
Насколько я понял надо простенький клас..ничего особенного
Ну я просто это неписал к тому, что уже к готовому шаблону можно приписать свой функционал, не изобритая велосипедов.
0
Dr.Urban
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
15.12.2011, 15:40 17
Я так понимаю человеку не надо сам велосипед а надо разобраться как он работает, чтобы сам мог собрать такой..
0
KVANTA
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
15.12.2011, 16:11  [ТС] 18
весьма благодарен за помощь, но у меня все же те же ошибки, объясните пожалуйста что должна выводить эта программа
0
Dr.Urban
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
16.12.2011, 00:37 19
Можно их как нибуть увидеть? или же укажите место где ошибки. У меня все чистенько, жду..
0
KVANTA
3 / 3 / 1
Регистрация: 12.12.2011
Сообщений: 68
16.12.2011, 00:57  [ТС] 20
вот фото с ошибкой
0
Миниатюры
Стеки  
16.12.2011, 00:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2011, 00:57

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

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

Стеки
Создать стек с числами в диапазоне от –50 до +50.Создать новый стек, в который...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru