Форум программистов, компьютерный форум CyberForum.ru

Статический и динамический стек - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ присвоения константе http://www.cyberforum.ru/cpp-beginners/thread767116.html
Допустим у нас есть класс: class Class{ public: Class(int = 5); private: const int n; }; Class::Class(int _n) {
C++ Целое значение близкое к 7 000 000 000 Здраствуйте, нашел так называемый проект ейлер с задачами для ищущих=) В общем задача найти самый большой простой делитель числа. Алгоритм работает на малых числах но когда ввожу 600851475143 , число которое мне в общем то и нужно посчитать программа работает неверно. Подскажите пожалуйста как правильно ввести это значение. Пробовал и unsigned int и прочее. :cry: #include <iostream>... http://www.cyberforum.ru/cpp-beginners/thread767114.html
Результат atoi C++
привет необходимо написать функцию, позволяющую проверить является ли содержимое строки, содержащей только цифры и/или знак + или - на первом месте целым числом. То есть нужно сравнить является ли содержимое строки >= −2 147 483 648 и <= 2 147 483 647 Так и запихав все это в компилятор программа: bool TenString::isInteger(void) { bool result;
Комбинаторика, перебор всех сочетаний C++
Предположим есть массив int ar = {0,0,0,0,0,1,1,1} (содержит 0 либо 1, число единиц(нулей) постоянно для всех полученных сочетаний. Длина каждой полученной комбинации фиксирована и ровна SIZE = 8 . Число полученных сочетаний = SIZE!/( n!*(SIZE - n)! ). Для данного случая 8!/(3!*(8-3)!) = 56 Может кто знает как получить все эти сочетания (без повторений). Сам я решил эту задачу полным...
C++ Ошибка в функции http://www.cyberforum.ru/cpp-beginners/thread767085.html
Помогите исправить ошибку мне надо Составить функцию countX, которая, получив c и b через параметры по значению, "а" через глобальную переменную, вычисляет "х" и возвращает его через параметр по ссылке. В функции main ввести значения a, x1 , x2 . Используя функцию countX, вычислить значение z и выдать на экран // main() #define _USE_MATH_DEFINES #include<iostream> #include<conio.h>...
C++ Определить количество слов, которые содержат ровно четыре буквы "о", "О" Дано строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить количество слов, которые содержат ровно четыре буквы "о". Помогите, вот есть программа, но что то она не корректно работает... Если ввожу два слова с 4 буквами О, то оно выводит что 2 слова. А если ввожу например слово с двумя буквами О, а потом ввожу слово с 4 буквами О, то пишет что слов с 4... подробнее

Показать сообщение отдельно
privit_91
13 / 13 / 0
Регистрация: 06.11.2012
Сообщений: 79

Статический и динамический стек - C++

20.01.2013, 16:34. Просмотров 4860. Ответов 2
Метки (Все метки)

Необходимо разработать программу, реализующую алгоритм стека (10 элементов). Решение необходимо представить в двух вариантах: статическом (на основе массива структур) и динамическом. В качестве элемента стека выбрать структуру жд_вокзал:
i. Номер (ключ)
ii. Станция отправления
iii. Станция назначения
iv. Дата/время отправления
v. Дата/время прибытия


Предусмотреть многоуровневое меню:
1) Заполнение стека: с консоли (циклически)
2) Удаление элемента из стека (циклически) безвозвратно
3) Очистка стека (с выводом удаляемых элементов) безвозвратно
4) Вывод элементов, содержащихся в стеке на экран
5) Вывод количества элементов в стеке
6) Выход


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
#include <iostream.h>
struct zd_vok // Структура жд вокзал
{ int nomer;
  char stan_otp[55];
  char stan_naz[55] ;
  char dat_vre_otp[30] ;
  char dat_vre_naz[30] ;
};
struct STACK //
{ zd_vok info; //поле типа структура
  STACK *next; //указатель на след. элемент
};
 
void Add(STACK **stack, zd_vok d) // Добавление элементов в стек
{ STACK *tmp = new STACK;
  tmp->info=d;
  tmp->next=*stack;
  *stack=tmp;
}
void Del(STACK **stack) //Удаление элементов со стека
{ STACK *tmp=*stack;
  *stack=(*stack)->next;
  delete tmp;
  return tmp;
}
int Empty(STACK *stack) //Проверка стека
{ if (stack==NULL) return 0; else return 1;
}
void ClearAll(STACK **stack) //Удаление стека
{ STACK *tmp;
  while(*stack!=NULL)
  { tmp=*stack;
    *stack=(*stack)->next;
    delete tmp;
  }
}
void Show(STACK *stack)
{ STACK *tmp=stack;
  while(tmp!=NULL)
  { cout << "Nomer: "<< tmp->info.nomer << endl;
    cout << "Stancia otpravlenia: "<< tmp->info.stan_otp << endl;
    cout << "Stancia naznachenia: "<< tmp->info.stan_naz << endl;
    cout << "Data vremia otpravlenia: "<< tmp->info.dat_vre_otp << endl;
    cout << "Data vramia naznachenia: "<< tmp->info.dat_vre_naz <<endl<<endl;
    tmp=tmp->next;
   }
}
 
 
void main()
{
 
    STACK *stack=NULL;
    int num,Key;
    STACK info;
    zd_vok d;
    int otv;
 
int i=1;
cin>>otv;
switch(otv)
{ case 1:
    { do
        { 
            cout<<"Nomer: - " <<endl;
            cin>>d.nomer;
            cout<<"Stancia otpravlenia: - "<<endl;
            cin>>d.stan_otp;
            cout<<"Stancia naznachenia: - "<<endl;
            cin>>d.stan_naz;
            cout<<"Data vremia otp: - "<<endl;
            cin>>d.dat_vre_otp;
            cout<<"Data vremia naz: -"<<endl;
            cin>>d.dat_vre_naz;
            Add(&stack,d);
            cout << endl << "Element dobablen" << endl;
            cout << endl << "Elementi steka"<<i << endl << endl;
            Show(stack);
            i++;
        } while (i<3);
 
}
};
 
}

Скажите я верно делаю ?
Не могу понять статически (на основе массива структур) вариант как его сделать? Буду очень признателен за помощь .
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru