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

Создать структуру, реализующую стек целых чисел типа LIFO - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дано натуральное число n, действительные числа X1,...,X3n http://www.cyberforum.ru/cpp-beginners/thread184209.html
Дано натуральное число n, действительные числа X1,...,X3n. Вычислить сумму чисел с Xn+1,...,X3n, которые превосходят по величине все числа X1,...,Xn.
C++ преобразовать одномерный массив Доброго времени суток! Помогите решить задачу, а то у меня в голове совсем не укладывается как. Дан массив размера N. Преобразовать его, вставив перед1|после2 каждого положительного3|отрицательного4 элемента нулевой элемент. Буду весьма презнателен http://www.cyberforum.ru/cpp-beginners/thread184208.html
C++ Нарисовать рамку.
Пытаюсь нарисовать рамку.Т.е.: ххххххх х-----х х-----х ххххххх У меня получается создать 2 гориз-ые линии через массивы.Но наверняка есть какой-то более емкий способ,может кто поделится идеей. #include <iostream> #include <string.h> #include <conio.h>
Определить кольцо с центром в начале координат, которое содержит все точки C++
Пожалуйста, помогите с заданием в Microsoft Visual C++ 6.0 Составить программу по обработке одномерного массива согласно условию: В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в порядке х1,у1,х2,у2,х3,у3 и т.д. Определить кольцо с центром в начале координат, которое содержит все точки. Заранее благодарен Дублирование...
C++ Функция int isdigit(int С) http://www.cyberforum.ru/cpp-beginners/thread184165.html
Чот мучился с ней так и не сообразил как организовать решение задачи: с бинарного файла считываются цифры и латинские буквы, а после буквы записываются в бинарный b, а цифры в бинарный h.. Может кто примером объяснит?
C++ Реализовать односвязный список для хранения Реализовать односвязный список для хранения данных вида: ФИО, группа. Обеспечить выполнение операций: добавление элемента в заданную позицию списка; очистка списка; отображение содержимого списка. подробнее

Показать сообщение отдельно
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
01.11.2010, 17:47     Создать структуру, реализующую стек целых чисел типа LIFO
Balls, нормально, только инициализацию и функции записи и чтения надо сделать методами класса, а ещё добавить метод-проверку на пустоту стека.
Вариант Кренделя ничего, но не соответствует (насколько я понял) заданию, и в нём неэффективная работа с памятью.
Вообще, на плюсах создание такого класса смысла не имеет, потому что есть std::stack. Было бы лучше писать на Си. Но раз уж такое задание, то предлагаю следующий вариант:
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
#include <iostream>
 
#define SIZE 10
 
class stack {
public:
    stack () : top(0) {}
    
    void push (int number) {
        if (is_empty()) top = items;
        else ++top;
        
        *top = number;
    }
    
    int pop () {
        int result = *top;
        
        if (top == items) top = 0;
        else --top;
        
        return result;
    }
    
    void clear () { top = 0; }
    
    bool is_empty () const { return top == 0; }
    bool is_full () const { return !is_empty() && (top >= items + SIZE - 1); }
 
private:
    int items[SIZE];
    int * top;
};
 
int main (int argc, char * const argv[]) {
    stack s;
    
    for (int i = 0; !s.is_full(); ++i) s.push(i);
    
    while (!s.is_empty()) std::cout << s.pop() << " ";
 
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru