Форум программистов, компьютерный форум 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... подробнее

Показать сообщение отдельно
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
20.01.2013, 18:51     Статический и динамический стек
Цитата Сообщение от privit_91 Посмотреть сообщение
Скажите я верно делаю ?
Похоже на то... Но все-таки я посоветовал бы сделать следующим образом:
1) переименовать стрктуру STACK в Node
C++
1
2
3
4
5
struct Node
{ 
    zd_vok info; //поле типа структура
    Node *next; //указатель на след. элемент
};
2) сделать отдельную структуру для представления стека
C++
1
2
3
4
struct Stack 
{
    Node* top; // указатель на вершину стека
};
Таким образом:
1) код станет намного более прозрачным, например
C++
1
2
3
4
5
6
7
8
9
void Add(Stack& stack, const zd_vok& d) // Добавление элементов в стек
{ 
    Node *tmp = new Node;
    
    tmp->info = d;
    tmp->next = stack.top;
    
    stack.top = tmp;
}
2) При создании стека на основе статического массива ничего не нужно будет менять в функции main, все функции для работы со стеком останутся те же, изменится только их реализация.
Цитата Сообщение от privit_91 Посмотреть сообщение
Не могу понять статически (на основе массива структур) вариант как его сделать?
Например, так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct Stack 
{
    zd_vok data[100];
    int size; // количество элементов в стеке(size - 1 соответственно элемент находящийся на вершине стека)
};
 
void Add(Stack& stack, const zd_vok& d) // Добавление элементов в стек
{ 
    // ...сдесь проверка на переполнение...
    // ...
    stack.data[stack.size++] = d;
}
 
// ...
 
Текущее время: 14:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru