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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
#1

Очередь через массив. - C++

25.02.2012, 00:51. Просмотров 652. Ответов 4
Метки нет (Все метки)

Здравствуйте. Помогите написать класс очереди при помощи массива.
Очередь должна поддерживать такие операции:
dobavit - добавить новый элемент в конец стека (Например: dobavit 2 - должен добавиться новый элемент равный 2)
ydalit_pervyi - удалить первый элемент
pervyi - узнать значение первого элемента
razmer - кол-во элементов
ochistit - очистить стек
vyhod - программа должна вывести poka и завершить работу

Помогите пожалуйста. Первый раз имею дело со стеками и очередями.

Добавлено через 2 часа 4 минуты
Неужели никто не может помочь?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2012, 00:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Очередь через массив. (C++):

Очередь через односвязный список - C++
Здравствуйте :) Собственно сам вопрос: почему выводи "1 0", а не "0 1"? #include <iostream> #include <string> template < typename...

Статическая очередь, реализованная через меню - C++
Помогите написать программу, нужно написать программу в Dev c++,условие: статическая очередь с меню:1.добавить элемент в очередь.2.показать...

Очередь Поменять местами элементы через переадресацию - C++
У нас есть очередь и, к примеру, минимальный элемент MIN, и максимальный MAX. Как их поменять местами в очереди изменяя адреса?

Массив и очередь с приоритетом - C++
Здравствуйте! Помогите, пожалуйста, найти информацию(или объясните принцип работы) о реализации очереди с приоритетами через массив. ...

Очередь как кольцевой массив - C++
Очередь как кольцевой массив. Скопировать содержимое стека в очередь. Я в программирование не особо, а сдать надо. Буду очень благодарна....

Копировать массив указателей на структуры в очередь - C++
Я пишу курсач на тему создания динамических структурных переменых оформленных в виде очереди. Мне нужно редактировать созданные структурные...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
25.02.2012, 11:42 #2
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//#include "stdafx.h"   //uncomment this line if you are using MSVS
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
class Ochered {
public:
    Ochered(); //constructor
    ~Ochered(); //destructor
 
    void dobavit(int);
    void udalit_peryi();
    int pervyi();
    int razmer();
    void ochistit();
 
private:
    int count;
    int *array; //pointer to int.
};
 
Ochered::Ochered() :
        count(0) {
    array = new int[0];
}
 
void Ochered::dobavit(int val) {
    int *newArray = new int[count + 1];
    newArray[0] = val;
    for (int i = 1; i <= count; ++i) {
        newArray[i] = array[i - 1];
    }
    delete[] array;
    array = newArray;
    count++;
}
 
int Ochered::razmer() {
    return count;
}
 
int Ochered::pervyi() {
    return array[0];
}
 
void Ochered::udalit_peryi() {
    int *newArray = new int[count-1];
    for (int i = 0; i < count-1; ++i) {
        newArray[i] = array[i + 1];
    }
    delete[] array;
    array = newArray;
    count--;
}
 
void Ochered::ochistit(){
    int * newArray = new int[0];
    delete [] array;
    array = newArray;
    count = 0;
}
 
Ochered::~Ochered() {
    delete[] array;
}
 
int main() {
 
    Ochered o = Ochered();
 
        cout << "Size after initialising" << endl;
        cout << o.razmer() << endl;
 
        cout << "Size after adding first element" << endl;
        o.dobavit(2);
        cout << o.razmer() << endl;
 
        cout << "First element value" << endl;
        cout << o.pervyi() << endl;
 
        cout << "Size after adding second element" << endl;
        o.dobavit(4);
        cout << o.razmer() << endl;
 
        cout << "First element value" << endl;
        cout << o.pervyi() << endl;
 
        cout << "Size after after removing first element" << endl;
        o.udalit_peryi();
        cout << o.razmer() << endl;
 
        cout << "First element value" << endl;
        cout << o.pervyi() << endl;
 
        cout << "Size after queue truncating" << endl;
        o.ochistit();
        cout << o.razmer() << endl;
 
    cin.get();
    return 0;
}
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
25.02.2012, 23:11  [ТС] #3
Не совсем понятно. Надо вводить команды самому. Проблема в том, что понятия не имею как это сделать.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
26.02.2012, 01:11 #4
b0n4b, вы в следующий раз сразу пишите что вам нужна программа с меню. и чтобы дейтсвия выполнялись на основе выбора пользователя в меню.

Не по теме:

если попозже будет время то добавлю меню. простите занят.


Цитата Сообщение от b0n4b Посмотреть сообщение
Не совсем понятно.
Что именно непонятно из кода? Вроде старался писать максимально просто.
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
16.03.2012, 15:32  [ТС] #5
greeezz, пользователь сам должен вводить команды для программы.
Например пользователь вводит dobavit 2, программа отвечает ok. (Пользователь добавил новый элемент равный 2)
Потом пользователь вводит razmer, программа отвечает 1. (В данном случает)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2012, 15:32
Привет! Вот еще темы с ответами:

Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете - C++
Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете. В каждый момент времени происходит одно из событий:...

Очередь (сделать очередь, чтобы добавляло, удаляло, читало. Не STL.) - C++
Помогите пожалуйста написать очередь. Есть Температура double и ее тип int ну и нужно сделать очередь, чтобы добавляло, удаляло, читало....

Задача на очередь (вывод сообщения, что очередь пуста) - C++
Доброго дня! Есть задачка на очередь, которая работает нормально, только надо добавить код, чтобы выводил сообщение, что очередь пуста.....

Очередь, теория. Очередь на шести стеках - C++
Здравствуйте, пытаюсь побольше найти информации про очереди и их применение в программировании. Из того что я нашел, все описывается лишь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.03.2012, 15:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru