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

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

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

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

25.02.2012, 00:51. Просмотров 638. Ответов 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++
Здравствуйте :) Собственно сам вопрос: почему выводи "1 0", а не "0 1"? #include <iostream> #include <string> template < typename...

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

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

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

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

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

Как в массив скопировать массив, который заполнен через указатели - C++
Есть два файла допусти. Суть вопроса в том, что находится во втором файле. Как записать? car.h struct car { float massiv; ...

Массив через функцию - C++
Всем привет!!!Помогите пожалуйста решить задачку!!! Дан массив. Найти номера всех элементов с минимальным и максимальным...

массив через функцию - C++
дан массив, нужно его сделать через функцию #include "stdafx.h" #include <iostream> using namespace std; void summa (double array);...

Список через массив - C++
мне не интересуют исходники меня интересуют два вопроса 1)массив должен быть постоянного размера?(ну то есть в конструктор передал n -...

массив через указатели - C++
в общем проблемы начинаются с самого начала... нужен массив с Конкретными числами: -6.3, 0.8, 12, -4, 13, 2.5, 7, 8, -9, 10 в...

Массив через цикл - 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. (В данном случает)
Yandex
Объявления
16.03.2012, 15:32     Очередь через массив.
Ответ Создать тему
Опции темы

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