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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверка : нажал ли пользователь клавишу http://www.cyberforum.ru/cpp-beginners/thread153542.html
Извиняюсь за тупой вопрос. Нужна функция которая проверяет, нажал ли пользователь какую то клавишу или нет. Знаю только наподобие getch() cin.get() cin.peek() но это не то.. если пользователь ничего...
C++ Поиск самой быстрой сортировки Ищу быструю реализацию быстрого алгоритма сортировки массива для среднего случая на С/С++ под Win32. Остальные параметры не имеют значения. Пока что самая быстрая реализация которую я нашел -... 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... подробнее

Показать сообщение отдельно
accept
4825 / 3246 / 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() - это просмотр без извлечения
сортировку свою писать надо, так как это список, то и делать можно всё, что можно со списком делать, сохраняя очередь (её функции, свойства)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru