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

очериди C++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ поиск связных компонент графа http://www.cyberforum.ru/cpp-beginners/thread411001.html
Нужна програмная реализация алгоритма поиска связных компонент графа написала вот что-то такое: #pragma hdrstop #pragma argsused #include <iostream> #include <conio.h> #include <time.h>
C++ Перенаправление потока вывода Здравствуйте! Задача такова - нужно перенаправить поток вывода с cout на файловый в одном из конструкторов класса. Итог - необработанное исключение 0xC0000005: Нарушение прав доступа при чтении "0xccccccd0". Вот сами исходники: 1. logger.h #ifndef LOGGER_H #define LOGGER_H #include <iostream> #include <fstream> class Logger { http://www.cyberforum.ru/cpp-beginners/thread410995.html
Динамический массив C++
Разработать класс содержащий: - компоненты данные - методы: а) конструктор по умолчанию; б) конструктор с параметрами; в) конструктор копирования; г) деструктор; д) методы класса для работы с данными. Данные класса должны иметь атрибут private. Задача 1. Создать 2 объекта разработанного класса. Класс – динамический вектор (одномерный массив). Найти в каждом объекте MAX значение элемента...
Модуль в массиве C++
Добрый вечер. Подскажите мне пожалуйста вот с этой задачей: В одномерном массиве, состоящем из n вещественных элементов, вычислить: • номер минимального элемента; • сумму элементов массива, расположенных между первым и вторым отрицательными элементами. • Преобразовать таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом – все остальные. ...
C++ Номера столбцов в которых находиться более двух простых чисел http://www.cyberforum.ru/cpp-beginners/thread410982.html
Вводиться матрица. И нужно вывести на экран номера столбцов в которых находиться более двух простых чисел . Сижу в ступоре,как это дело оформить? Нужен только кусок,спасибо
C++ Ищу оригинальное решение зачачи о графах (хоть какаое-нибудь ищу) Задача о максимальном независимом множестве. Матрица смежности заполнена из файла т.о.: #include<iostream> #include<conio.h> #include<fstream.h> using namespace std; int main() { char s1; char s2; подробнее

Показать сообщение отдельно
Kronozzz
0 / 0 / 0
Регистрация: 25.10.2011
Сообщений: 17
18.12.2011, 21:51     очериди C++
Смоделировать очередь на базе статического массива, в которой реализован такой механизм изъятия элемента из очереди: начало очереди всегда находится в первом элементе массива; при изъятии одного элемента из очереди, все остальные элементы перемещаются на одну позицию ближе к началу массива. После обработки всей заданной входной последовательности найти среднее арифметическое всех элементов очереди.

помогите пожалуйста очень надо!
есть набросок осн функций
(push_left, push_right, pop_left, pop_right, front_left, front_right, empty, full)
и тд.
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
#include <stdio.h>
#include <iostream>
using namespace std;
 
template<class item>
class deq{
private:
//Left right
int left,right;
//Розмір
int count;
//Масив елементів
item *items;
//Capacity - ємність
int Capacity;
 
public:
//Конструктор з заданою ємністю
deq(int n){
Capacity = n;
items = new item[Capacity];
count = 0;
left = Capacity / 2;
right = left - 1;
}
//Деструктор
~deq(){delete[] items;}
//Занесення даних в дек
void push_right(item it){
if (count < Capacity){
if(right == Capacity - 1 ){
for (int i = left - 1; i < right; i++)
items[i]=items[i + 1];
items[right] = it;
left--;
}
else
items[++right] = it;
count++;
}
}
//Якшо дані досягають кінця масиву, то вони
//перевисуються на одну позицію від кінця
void push_left(item it){
if (count < Capacity){
if(left == 0){
for (int i = right + 1; i > 0; i--)
items[i] = items[i - 1];
items[left] = it;
right++;
}
else
items[--left] = it;
count++;
}
}
//Розмір деку
int size(){return count;}
//Перевірка чи дек порожній
bool empty(){return (count == 0);}
//Вершина деку
item front_left(){if (!empty())return items[left];}
item front_right(){if(!empty())return items[right];}
//Вилучення з деку
void pop_left(){
if(!empty()){
left++;
count--;
}
}
void pop_right(){
if(!empty())
right--;
count--;
}
//Вивести вміст деку
void print(){
cout << "deq:";
if(!empty()){
for(int i = left; i <= right; i++)
cout << items[i] << " ";
if (count == Capacity)
cout << "size:full" << endl;
else
cout << "size:" << count << endl;
}
else
cout << " empty" << endl;
}
};
Добавлено через 16 минут
еще можно на основе этого дека сделать
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
#include "quere.cpp"
 
//Варіант 10
void main()
{
int i,a; deq<int> deq1(20);
 
//Приклад масиву
printf("arr={1,2,-3,-4,4,3,8,1,7,5,8}\n");
 
//Занесення даних в дек з клавіатури
deq1.print();
for(i = 0; i <= 10; i++){
cout << "a="; cin >> a;
if(a < 0)
//Якщо число відємне і парне вилучаємо справа
//інакше - зліва
if(-a % 2 == 0)
deq1.pop_right();
else
deq1.pop_left();
else
//Якщо число додатнє і парне додаємо
//елемент справа інакше зліва.
if(a%2 == 0)
deq1.push_right(a);
else
deq1.push_left(a);
deq1.print(); //Виведення вмісту деку
}
int s = deq1.size(); //розмір деку
//Перенесення даних з одного кінця деку
//в інший з подвоєнням
for(i = 0; i < s; i++){
deq1.push_right(deq1.front_left());
deq1.push_right(deq1.front_left());
 
deq1.pop_left();
deq1.print();
}
getchar(); getchar();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru