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

Сформировать очеред содержащую весенние даты, упорядоченные только по месяцу и числу. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверка : нажал ли пользователь клавишу http://www.cyberforum.ru/cpp-beginners/thread153542.html
Извиняюсь за тупой вопрос. Нужна функция которая проверяет, нажал ли пользователь какую то клавишу или нет. Знаю только наподобие getch() cin.get() cin.peek() но это не то.. если пользователь ничего не нажимал то функции ЖДУТ нажатия, а мне нужно чтоб цикл продолжался без остановок.
C++ Поиск самой быстрой сортировки Ищу быструю реализацию быстрого алгоритма сортировки массива для среднего случая на С/С++ под Win32. Остальные параметры не имеют значения. Пока что самая быстрая реализация которую я нашел - простой quicksort из книги Седжвика. Вот прога, где реализована быстрая сортировка : #include<algorithm> #include<stdlib.h> #include<time.h> #include<iostream> #include<stack> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread153532.html
Поиск в тексте C++
Помогите пожалуйста В файле имеется текст. Найти отсутствие пробелов после точки в конце предложения, исправить ошибки и сохранить файл. Предложением считать часть текста, что кончается "." или начинается с нового рядка
bool в параметрах функции C++
можно ли использовать тип bool в параметрах функции? void draw(char ch, int width, bool vline, bool hline ); или лучше использовать что-то другое?
C++ Невозможно найти или открыть файл pdb http://www.cyberforum.ru/cpp-beginners/thread153471.html
я написал по учебнику прогу //Первая программа на C++ #include "stdafx.h" #include <iostream> int main () { std::cout << "Добро пожаловать в С++!\n"; return 0; }
C++ шаблон функции Здрасти. Как правильно написать шаблон ,например, этой функции? int **newmatrix(int row, int col){ int **matrix=new int*; for (int i=0; i<row; ++i) matrix=new int; return matrix; } я сделал так: подробнее

Показать сообщение отдельно
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
15.07.2010, 03:20     Сформировать очеред содержащую весенние даты, упорядоченные только по месяцу и числу.
Цитата Сообщение от mary_fly
Сформировать очеред содержащую весенние даты
у тебя сделано так, что очередь может быть только одна
очередь, которая создаётся локально

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 <stdio.h>
#include <stdlib.h>
#include <string.h>
 
struct node {
    char *p;
    struct node *next;
};
 
struct queue {
    struct node *head, *tail;
};
 
void CreateQueue(struct queue *pq);
void ClearQueue(struct queue *pq);
int PutQueue(struct queue *pq, struct node *pn);
int GetQueue(struct queue *pq, struct node *pn);
 
/* creates a queue, puts there some elements
   reads the queue and prints every element */
int main(void)
{
    struct queue q;
    struct node n = { "one", NULL };
    struct node m = { "two", NULL };
    
    CreateQueue(&q);
    
    PutQueue(&q, &n);
    PutQueue(&q, &m);
    PutQueue(&q, &n);
    PutQueue(&q, &m);
    PutQueue(&q, &n);
    PutQueue(&q, &m);
        
    while (GetQueue(&q, &n) != 0)
        printf("%s" "\n", n.p);
    
    exit(EXIT_SUCCESS);
}
 
/* CreateQueue:  creates a clear queue pq */
void CreateQueue(struct queue *pq)
{
    pq->head = pq->tail = NULL;
}
 
/* ClearQueue:  clears a queue pq */
void ClearQueue(struct queue *pq)
{
    struct node *tmp;
    
    while ((tmp = pq->head) != NULL) {
        pq->head = tmp->next;
        free(tmp);
    }
    pq->tail = NULL;
}
 
/* PutQueue:  puts to a queue pq a node pn;
              returns 1 or 0 */
int PutQueue(struct queue *pq, struct node *pn)
{
    struct node *tmp;
    
    tmp = (struct node *) malloc(sizeof(struct node));
    
    if (tmp == NULL)
        return 0;
    
    *tmp = *pn;
    tmp->next = NULL;
    
    if (pq->head == NULL)
        pq->head = pq->tail = tmp;
    else {
        pq->tail->next = tmp;
        pq->tail = tmp;
    }
    
    return 1;
}
 
/* GetQueue:  gets from a queue pq a node pn;
              returns 1 or 0 */
int GetQueue(struct queue *pq, struct node *pn)
{
    struct node *tmp;
    
    if (pq->head == NULL) {
        pq->tail = NULL;
        return 0;
    }
    
    tmp = pq->head;
    *pn = *tmp;
    pq->head = tmp->next;    
    free(tmp);
    
    return 1;
}
(лучше возвращать: 0 - успех, остальное - сбой)

сделай вторую очередь, туда выберешь из первой очереди весенние даты
(можешь из первой удалить не весенние даты, а вдруг другие нужны будут потом)

Цитата Сообщение от mary_fly
упорядоченные только по месяцу и числу
отсортировать новую очередь
(можно первую отсортировать, прикинь, у тебя дат на целый год, ты будешь сортировать все даты, а потом большую часть удалять, а зачем)

Цитата Сообщение от mary_fly
можно выполнять три операции: добавление элементов, удаление элемент и очищать её.
можно ещё делать peek() - это просмотр без извлечения
сортировку свою писать надо, так как это список, то и делать можно всё, что можно со списком делать, сохраняя очередь (её функции, свойства)
 
Текущее время: 10:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru