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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2018, 12:01   #1
SmileLan
 
Регистрация: 24.12.2018
Сообщений: 7
По умолчанию Помогите раелизовать 2 стека в одном массиве

Не пойму что тут не так
Код:
#include <iostream>
 
using namespace std;
 
int main()
{
    class Stack
    {
        private
        int Root[k];
        double D [N]
        int Next [N];
        public:
            Stack();
            void Push (int k, double x);
            void Pip (int k);
            double Top (int k);
            bool IsEmpty (int k);
            void GetTop (int k, double &k);
    }
    Stack::Stack()
    {
        Free = 0;
        for (int i=0; i<=N-2; i++)
            Next [i] = i+1;
        Next [N-1] = Null;
    }
    void Stack::Push (int k, double x)
    {
        int Stack::New() 
        {
            t=Free; free=Next(free)
            return t:
        }
        void Stack::delete (int t)
        {
            Next [t] = free; free=ti
        }
На просторах интернета нашёл еще такой вариант, как реализовать 2 стека не пойму
Код:
#include <iostream>
using namespace std;
///////////////////////////////////////////////////////////
class Stack
{
  private:
    enum { MAX = 10 }; // немного нестандартный синтаксис
    int st [ MAX ];    // стек в виде массива
    int top;           // вершина стека
  public:
    Stack ( ) // конструктор
      { top = 0; }
    void push ( int var ) // поместить в стек
      { st [ ++top ] = var; }
    int pop ( ) // взять из стека
      { return st [ top-- ]; }
};
///////////////////////////////////////////////////////////
int main ( )
{
  Stack s1;
 
  s1.push ( 11 );
  s1.push ( 22 );
  cout << "1: " << s1.pop ( ) << endl;
  cout << "2: " << s1.pop ( ) << endl;
  s1.push ( 33 );
  s1.push ( 44 );
  s1.push ( 55 );
  s1.push ( 66 );
  cout << "3: " << s1.pop ( ) << endl;
  cout << "4: " << s1.pop ( ) << endl;
  cout << "5: " << s1.pop ( ) << endl;
  cout << "6: " << s1.pop ( ) << endl;
  return 0;
}
SmileLan вне форума Ответить с цитированием
Старый 24.12.2018, 12:04   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Код:
    void Stack::Push (int k, double x)
    {
        int Stack::New() 
        {
Что это? Скобки проверили?

Цитата:
Сообщение от SmileLan Посмотреть сообщение
как реализовать 2 стека не пойму
Код:
Stack s1, s2;
p51x вне форума Ответить с цитированием
Старый 24.12.2018, 12:08   #3
SmileLan
 
Регистрация: 24.12.2018
Сообщений: 7
По умолчанию

Ах да, исправленный вариант со скобками сейчас скину
SmileLan вне форума Ответить с цитированием
Старый 24.12.2018, 12:10   #4
SmileLan
 
Регистрация: 24.12.2018
Сообщений: 7
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
    void Stack::Push (int k, double x)
    {
        int Stack::New() 
        {
Что это? Скобки проверили?

Код:
#include <iostream>

using namespace std;

int main()
{
    class Stack
    {
        private:
        int Root[k];
        double D [N]
        int Next [N];
        public:
            Stack();
            void Push (int k, double x);
            void Pip (int k);
            double Top (int k);
            bool IsEmpty (int k);
            void GetTop (int k, double &k);
    }
    Stack::Stack()
    {
        Free = 0;
        for (int i=0; i<=N-2; i++)
            Next [i] = i+1;
        Next [N-1] = Null;
    }
    void Stack::Push (int k, double x)

        int Stack::New()
        {
            t=Free; free=Next(free)
            return t:
        }
        void Stack::delete (int t)
        {
            Next [t] = free; free=ti
        }
}
Код:
Stack s1, s2;
Может библиотеки еще нужны какие-то?
SmileLan вне форума Ответить с цитированием
Старый 24.12.2018, 12:21   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Код:
void Stack::Push (int k, double x)
Что это? Прототип? - тогда, где точка с запятой? Реализация? - тогда, где тело?

Код:
            void Pip (int k);
            double Top (int k);
            bool IsEmpty (int k);
            void GetTop (int k, double &k);
Где реализации этих функций?

Код:
int Stack::New()
void Stack::delete (int t)
Где объявление этих функций?

Код:
        int Root[k];
        double D [N]
        int Next [N];
Кто такие k, N? Чему они равны?

Код:
Free, free, ti, ....
Кто это все? Где объявления?

Код:
free=Next(free)
free=ti
Где точки с запятой?
p51x вне форума Ответить с цитированием
Старый 24.12.2018, 12:39   #6
SmileLan
 
Регистрация: 24.12.2018
Сообщений: 7
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Где реализации этих функций?
с этим у меня и проблема
Цитата:
Сообщение от p51x Посмотреть сообщение
Где объявление этих функций?
и с этим то же, не знаю где их и как объявить
SmileLan вне форума Ответить с цитированием
Старый 24.12.2018, 12:51   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Цитата:
Сообщение от SmileLan Посмотреть сообщение
с этим у меня и проблема
Вы не знаете, что должна делать функция - ПустСтэк? ПолучитьВершину? Или в чем проблема?

Цитата:
Сообщение от SmileLan Посмотреть сообщение
не знаю где их и как объявить
Ну раз Stack::New и Stack:elete, то в классе вместе с остальными. И лучше быть аккуратнее с названиями совпадающими с ключевыми словами/операторами/...
p51x вне форума Ответить с цитированием
Старый 24.12.2018, 13:05   #8
SmileLan
 
Регистрация: 24.12.2018
Сообщений: 7
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Вы не знаете, что должна делать функция - ПустСтэк? ПолучитьВершину? Или в чем проблема?


Ну раз Stack::New и Stack:elete, то в классе вместе с остальными. И лучше быть аккуратнее с названиями совпадающими с ключевыми словами/операторами/...
Вообще ничего не понимаю, Как реализовать аааааа
SmileLan вне форума Ответить с цитированием
Старый 24.12.2018, 13:20   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Начнем с простого: вы знаете, что такое стек?
p51x вне форума Ответить с цитированием
Старый 24.12.2018, 13:53   #10
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Начнем с простого: вы знаете, что такое "компьютер"?
_Bers вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Язык C]: В массиве числа образуют неубывающую последовательность. Найти количество различных чисел в массиве. Помогите найти ошибку. Yulia24* Помощь студентам 0 18.10.2016 20:41
Описать функцию нахождения самого короткого отпуска в одном массиве. Санко Паскаль, Turbo Pascal, PascalABC.NET 2 05.04.2014 20:27
Блок-схема к задаче(Реализация стека в массиве) Firagon C# (си шарп) 0 09.06.2011 18:44
переполнение стека. помогите решить эту проблему Hikari Паскаль, Turbo Pascal, PascalABC.NET 1 01.06.2009 18:58