Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2009, 19:03   #1
DOJ
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 19
По умолчанию Реализация стека в виде массива

Помогите пожалуйста разобраться с реализацией стека ввиде массива. Очень нужна ваша помощь. Написала не большой код, но не работает, что-то делаю ни так. Заранее благодарю.
Код:
#include <iostream.h>
#include <stack.h>
#include <cstdlib.h>
#include <conio.h>
using namespace std;
  class Stack
  {
  private:
   enum { max=100};
  int MaxSize[max];//стек в виде массива
  int top;// вершина стека
  int var; //элементы стека

      //top=0;
     void push()
     {
     if(top.isempty)
     while (!var==0){
     MaxSize=var;
     top++;
     }
       }
       }
     void main()
     {
     count<<"Введите элементы стека"<<endl;
     cin>>var;
     push();
     }
DOJ вне форума Ответить с цитированием
Старый 12.10.2009, 20:14   #2
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Ты заполняеш все 100 елементов MaxSize?
Cpluser вне форума Ответить с цитированием
Старый 12.10.2009, 21:30   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Хмм... Очень, на мой взгляд, все запутанно...
Во-первых, обычно push принимает аргумент и помещает его в конец стека.
Код:
push(int newvar) {if (top != max) MaxSize[++top] = newvar;}
И в дальнейшем можно считывать по одному элементу из cin.
Во-вторых, у вас push находится в private, хотя должен быть в public, чтоб к нему можно было обращаться.
В-третьих, что это за
Код:
   if(top.isempty)
?
Получается, что вы хотите проверить значение isempty, являющегося членом top, который вообще-то имеет тип int... Это что-то совсем странное...
Ну и в-четвертых, не
Код:
 count<<"Введите элементы стека"<<endl;
а
Код:
 cout<<"Введите элементы стека"<<endl;
Вот навскидку.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 12.10.2009, 21:33   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

От себя добавлю, что не объявлен объект класса и не стоит забывать ставить точку с запятой после описания класса
netrino вне форума Ответить с цитированием
Старый 12.10.2009, 21:59   #5
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 534
По умолчанию

мне кажется тут народ какой-то слишком доверчивый
явно же видно что человек вообще ничего не понимает в программировании, скопировал из поисковика каких-то кусков кода что бы не просили "свои наработки" и ждет когда выложат готовое решение...
а вы ему про объекты и функции рассказываете ))
m0nax вне форума Ответить с цитированием
Старый 12.10.2009, 22:08   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Ну так может хоть покопает в сторону тех самых объектов и ф-ций, дабы разобраться, когда уж совсем припрёт ) А то ведь вообще не в курсе
netrino вне форума Ответить с цитированием
Старый 12.10.2009, 22:47   #7
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Ну так я и не пишу готовый код! Мне, во-первых, лениво, а во-вторых, я предпочитаю подкидывать идеи нежели тщательно выверенные реализации оных (опять же лениво, да и это гораздо полезнее!)
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 13.10.2009, 15:55   #8
DOJ
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 19
По умолчанию

Да конечно прямо-таки так и жду готовые ответы! Если бы они мне были нужны искала бы на форуме. А вообщем спасибо и на этом, за вашу помощь! P.S. устно написать смысл стека в массиве и я могу, мне не совсем понятно реализация стека в С++. Да не отрицаю новичок в С++. Но учусь, и оскорблять не обязательно. Я помощи прошу, а не готовые исходники.

Последний раз редактировалось DOJ; 13.10.2009 в 16:06.
DOJ вне форума Ответить с цитированием
Старый 20.10.2009, 19:21   #9
DOJ
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 19
По умолчанию

И так дорогие форумчане, продолжаю свой вопрос. Помогите пожалуйста в решений данной задачи. Написала небольшой код. Подскажите пожалуйста мой ошибки, так как не совсем разбираюсь в С++. А сделать нужно. Я не прошу готовых решений, я сама пытаюсь разобраться. Прошу не судите строго. Заранее благодарю.
Код:
#include<Stack.h>
#include<iostream.h>
#include<cstdlib.h>
using namespace std;

const int max_size=15;
class Stack
{
public:
int var;//значение элементов стека
int top;//вершина стека, счетчик
int max_stack[max_size];//массив
void push();//добавление элементов
void pop();//удаление
};

void Stack::push()
{
  if (top==0)
  {
   while(!top==max_size)
   max_stack[top++]=var;
   }
   }
   void Stack::pop()
   {
   if (!top==0){
   return max_stack[top--];
   }
   }
   void main()
   {
   cout<<"Введите элементы стека"<<endl;
   cin>>max_stack[max_size];
   push();
   pop();
   }
DOJ вне форума Ответить с цитированием
Старый 20.10.2009, 19:35   #10
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
По умолчанию

Код:
   void Stack::pop()
   {
   if (!top==0){
   return max_stack[top--];
   }
Функция, объявленная как void - процедура - не может возвращать никакого значения.

Код:
   void main()
   {
   cout<<"Введите элементы стека"<<endl;
   cin>>max_stack[max_size];
   push();
   pop();
   }
В функции main сначала нужно объявить объект класса, а уже потом через этот объект обращаться к методам и данным этого класса.
Быть радикальным - значит понять вещь в её корне. К.Маркс
nazavrik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация стека в виде массива DOJ Общие вопросы C/C++ 0 29.09.2009 18:37
Реализация Стека MjRed Общие вопросы C/C++ 3 13.05.2009 12:18