Форум программистов, компьютерный форум, киберфорум
Наши страницы

Подсчитать количество различных элементов в очереди и вывести их на экран - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ STL небольшие исправления http://www.cyberforum.ru/cpp-beginners/thread523492.html
Доброго времени суток. Помогите пожалуйста немного переделать программу. Вместо вектора мне нужна сделать очередь, ключом должен быть водитель (т.е "name"), вместо того чтобы выводить список...
C++ Создать класс Доброго времени суток. Нужна помощь. Завтра контрольная, а я вот как-то не могу написать программу.. Помогите пожалустааа.. \\Создать класс содержащий данные, реализовать методы ввода вывода и... http://www.cyberforum.ru/cpp-beginners/thread523490.html
C++ Создать АТД (структура)
1.Создать АТД (структура) - принтер, у которого есть фирма-производитель, тип(матричный,струйный,лазерный), разрешающая способность. Создать массив из принтеров и определить функцию для вывода...
C++ E2251 Cannot find default constructor to initialize base class
Здравствуйте. Столкнулся с данной ошибкой: E2251 Cannot find default constructor to initialize base class class fCountry { public: fCoutry(void) fCountry(string...
C++ Элементарные действия с классом http://www.cyberforum.ru/cpp-beginners/thread523446.html
Доброй ночи. Что следует прописать в int main() ,чтоб вызвать функцию coplex::trigon(float a, float b) использую переменные которые указаны в классе coplex. #include <iostream> #include <math.h>...
C++ Составить программы по блок-схемам С++ 1. Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: а) умножением элементов каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки... подробнее

Показать сообщение отдельно
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
23.03.2012, 03:32
1. Очередь
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
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
class Queue {
    int *a;
    int length;
public:
    Queue();
    ~Queue();
    void push(int number);
    int pop();
    void show();
};
 
//конструктор
Queue :: Queue() {
    length = 0;
    a = new int[length];
}
 
//деструктор
Queue :: ~Queue() {
    delete[] a;
}
 
//добавляем элемент в очередь
void Queue :: push(int number) {
    int *newQ = new int[length + 1];
    newQ[0] = number;
    for (int i = 1; i <= length; i++) {
            newQ[i] = a[i - 1];
    }
    delete[] a;
    a = newQ;
    length++;
}
 
//берем последний элемент из очереди
int Queue :: pop() {
    int lastElem = a[length - 1];
    int *newQ = new int[length - 1];
    for (int  i = 0; i < length - 1; i++) {
        newQ[i] = a[i];
    }
    delete[] a;
    a = newQ;
    length--;
    return lastElem;
}
 
//вывести очередь на экран
void Queue :: show() {
    cout << "Our queue:" << endl;
    for (int i = 0; i < length; i++) {
        cout << a[i] << " " ;
    }
    cout << endl;
    cout << "length = " << length << endl;
}
 
int main()
{
    Queue q;
    for (int i = 0; i < 5; i++) {
        q.push(i);
    }
    q.show();
    return 0;
}
Добавлено через 13 минут
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
#include <iostream>
 
using std::cout;
using std::endl;
using std::cin;
 
class Stack {
    int *a;
    int length;
public:
    Stack();
    ~Stack();
    void push(int number);
    int pop();
    void show();
};
 
//Конструктор
Stack :: Stack() {
    length = 0 ;
    a = new int[0];
}
 
//Деструктор
Stack :: ~Stack() {
    delete[] a;
}
 
//Добавить первый элемент
void Stack :: push(int number) {
    int *newS = new int[length + 1];
    newS[0] = number;
    for (int i = 1; i <= length; i++) {
            newS[i] = a[i - 1];
    }
    delete[] a;
    a = newS;
    length++;
}
 
//Вытащить первый элемент
int Stack :: pop() {
    int  firstElement = a[0];
    int *newStack = new int[--length];
    for (int i = 1; i < length + 1; i++) {
        newStack[i - 1] = a[i];
    }
    delete[] a;
    a = newStack;
    return firstElement;
}
 
//Вывод стека на экран
void Stack :: show() {
    int sumCr = 0;
    cout << "Our stack:" << endl;
    for (int i = 0; i < length; i++) {
        sumCr += a[i];
        cout << a[i] << " ";
    }
    cout << endl;
    cout << "Cr arifm " << sumCr << endl;
}
 
int main() {
    Stack s;
    for (int i = 0; i < 5; i++) {
        s.push(i);
    }
    s.show();
    return 0;
}
Добавлено через 1 час 47 минут
3.Палиндром
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
#include <iostream>
#include <cstring>
 
using std::cout;
using std::endl;
using std::cin;
using std::getline;
 
class Stack {
public:
    char *a;
    int length;
    Stack();
    ~Stack();
    void push(char s);
    int pop();
    void show();
};
 
//Конструктор
Stack :: Stack() {
    length = 0 ;
    a = new char[0];
}
 
//Деструктор
Stack :: ~Stack() {
    delete[] a;
}
 
//Добавить первый элемент
void Stack :: push(char s) {
    char *newS = new char[length + 1];
    newS[0] = s;
    for (int i = 1; i <= length; i++) {
            newS[i] = a[i - 1];
    }
    delete[] a;
    a = newS;
    length++;
}
 
//Вытащить первый элемент
int Stack :: pop() {
    int  firstElement = a[0];
    char *newStack = new char[--length];
    for (int i = 1; i < length + 1; i++) {
        newStack[i - 1] = a[i];
    }
    delete[] a;
    a = newStack;
    return firstElement;
}
 
//Вывод стека на экран
void Stack :: show() {
    cout << "stack:" << endl;
    for (int i = 0; i < length; i++) {
       cout << a[i] << " ";
    }
    cout << endl;
}
 
//функция проверки на палиндром
bool palindromString(Stack *ob, Stack *ob2, char *str) {
    int strLen = static_cast<int>(strlen(str));
    int k = 0;
    if (strLen % 2) {  //если длина строки нечетное число то для одинакового количества символов в стеках увеличиваем k
       k += 1;
    }
    for (int i = 0; i < strLen/2 + k; i++) {
        ob->push(str[i]);    }
    for (int j = strLen/2; j < strLen; j++) {
        ob2->push(str[j]);
    }
    for(int i = 0, j = ob2->length - 1; i < ob->length, j >= 0 ; i++, j--) {
        if (ob->a[i] != ob2->a[j]) return false;
    }
    return true;
}
 
int main() {
    Stack s, s2;
    char a[20];
    cout <<"Input string until 20 elements" << endl;
    cin.getline(a, 20);
    cout << endl << "Your string " << a ;
    if (palindromString(&s, &s2, a)) cout << " is palindrom" << endl;
    else cout << " is not palindrom" << endl;
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru