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

Не получается связать очередь с сортировкой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разработать программу построения идеально сбалансированного дерева, элементами которого являются целые числа http://www.cyberforum.ru/cpp-beginners/thread1207472.html
Разработать программу построения идеально сбалансированного дерева, элементами которого являются целые числа, которые читаются из текстового файла. Предусмотреть вывод содержимого построенного дерева на экран монитора.
C++ Реализовать контейнер multiset к классу Здравствуйте у меня есть класс и мне надо реализовать контейнер multiset к этому классу. Проблема в том что я не могу понять особенности этого контейнера, то есть: 1) Какие функции он в себя включает(насколько я понял это добавление/удаление/поиск , а вот реализован ли в стандартном мультисете поиск по итератору, и есть ли в нём вообще итератор я так и не понял) 2)Правильно ли я понял что... http://www.cyberforum.ru/cpp-beginners/thread1207469.html
C++ Найти числа с ненулевой дробной частью
Даны текстовый файл, каждая строка которого изображает целое или действительное число, дополненное слева и справа несколькими пробелами (вещественные числа имеют ненулевую дробную часть). Вывести количество чисел с ненулевой дробной частью и их произведение.
C++ Минимальный элемент, повторяющийся максимальное количество раз в массиве
Привет всем. Мне нужно вывести минимальный элемент, повторяющийся максимальное количество раз в массиве. С поиском элемента, повторяющегося максимальное количество раз проблем не возникло. А вот со второй частью задания возникли проблемы. Вот мой код. #include <iostream> #include <conio.h> using namespace std; int a; int main() { int n, i, j;
C++ Переделать программу под двусвязный список http://www.cyberforum.ru/cpp-beginners/thread1207453.html
Написал программу кое-как на односвязный список, ибо тема эта для меня самая труднопонимаемая. Нужно переделать эту программу на двусвязный список. Как это сделать - не знаю. Буду рад, если хотя бы пнете в нужном направлении :) #include <iostream> //Удалить из списка все элементы, со значением меньше заданного. using namespace std; struct list { int inf; list*next; }; //Функция...
C++ Строки в стиле С Здравствуйте, задумался над одной штукой: можно ли просто написать char* s = "stirng"; или же нужно const char* s = "string"; я имею ввиду: если выбрать первый вариант, есть ли вероятность что область памяти следующая за s будет использована, ведь я не выделял для s память. подробнее

Показать сообщение отдельно
Славуся
3 / 3 / 1
Регистрация: 22.11.2012
Сообщений: 27

Не получается связать очередь с сортировкой - C++

14.06.2014, 00:10. Просмотров 171. Ответов 0
Метки (Все метки)

Пожайлустаааа помогите!!
Имеется очередь с 1 головой и сортировка распределяющий подсчет, так вот вопорс в следующем, как связать сортировку и очередь?

сортировка

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
ListCountingSort
    for i = 0 to k - 1
        C[i] = NULL;
    for i = 0 to n - 1
        C[A[i].key].add(A[i]);
    b = 0;
    for j = 0 to k - 1
        p = C[j];
        while p != NULL
            A[b] = p.data;
            p = p.next();
            b = b + 1;
очередь

C++ (Qt)
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
103
#include <iostream>
using namespace std;
 
struct element{
int num;
element* pNext;
};
 
struct ochered{
element *pHead;
element *pTail;
ochered();
~ochered();
int Count;
void Add(int numIn);//добавить элемент в очередь
bool pop(int &numOut);
void getnum(int &numOut);
void show(ochered *temp);
void Make_Empty(); // сделать очередь пустой
bool is_Empty()// проверка на пустоту очереди
{
    return !pHead;
};
};
 
 
ochered::ochered()
{
    pHead = NULL;
    pTail = NULL;
    Count=0;
}
 
ochered::~ochered()
{
    Make_Empty();
}
 
void ochered::Add(int numIn)
{
    element *a = new element;
    a->num=numIn;
    a->pNext = NULL;
    if(!pTail)
    {
        pHead = pTail = a;
    }
    else
    {
        pTail->pNext = a;
        pTail = a;  
    }
    Count++;
}
 
 
 
bool ochered::pop(int &numOut)
{
    if(!pTail) return false;
        if(!pHead->pNext)
        {
            delete pHead;
            pHead = pTail = NULL;
        }
        else
        {
            element *temp = pHead->pNext;
            delete pHead;
            pHead = temp;
        }
    Count--;
return true;
}
 
 
 
void ochered::getnum(int &numOut)
{
    numOut = pHead->num;
}
 
 
void ochered::Make_Empty()
{
    int temp;   
    while(pop(temp));
    pHead = pTail = NULL;
}
 
 
 
void ochered::show(ochered *temp) // вывести на экран очередь
{
    element *a = temp->pHead;
    element *b = temp->pHead;
    while(a)
    {
        cout << a->num << " ";
        b = a->pNext;
        a = b;
    }
}


Буду очень балгодарен и очень признателен тому кто поможет!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru