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

Реализовать очередь на базе односвязного списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Описать структуру с именем Order http://www.cyberforum.ru/cpp-beginners/thread290508.html
Всем Привет! #include <iostream> #include <iomanip> #include <algorithm> struct Order { long payer; long receiver; double sum; };
C++ Определить количество повторений каждой из цифр в числе 1)Фишка может двигатся по полю длины N только вперёд.Длина хода фишки не более K. Найти число различных путей, по которым фишка может перейти поле от начала до конца. ПРИМЕР N=3 K=2 Возможны пути: 1, 1, 1 1, 2 2, 1 2)У покупателя есть n монет достоинством H(1),...,H(n). У продавца есть m монет достоинством B(1),...,B(2). Может ли купить покупатель вещь стоимости S так, чтобы у продовца... http://www.cyberforum.ru/cpp-beginners/thread290497.html
консоль C++
Есть файл с данными (большой текст, около 300 строк), когда считываю данные оттуда и вывожу их на экран(в консоли) часть данных теряется (начиная с заголовка и примерно одно окно консоли). как избежать потери данных?
C++ Что такое касательные и прямые классы?
Что такое касательные и прямые классы? Весь инет переискал ничего не нашел. Очень нужна заранее спасибо!
C++ Нахождение кратчайших слов в каждой строке текста http://www.cyberforum.ru/cpp-beginners/thread290484.html
Задание: В произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 символов, найти и вывести на экран в виде списка слова наименьшей длины. Вывод организовать в порядке возрастания количества букв в слове, с указанием из какой строки взято слово и размера слова наибольшей длинны для данной строки. Для начала пробую разобраться с поиском слов наименьшей...
C++ Создание линейного списка Здравствуйте!!!!!! Помогите пожалуйста написать программку создание линейного спискаи распечатка линейного списка.Очен надо!!!! Заранее спасибо!!! подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
19.11.2011, 00:38     Реализовать очередь на базе односвязного списка
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
#include <stdio.h>
#include <stdlib.h>
 
typedef struct NODE {
    int value;
    struct NODE * next;
} node_t;
 
typedef struct QUEUE {
    node_t * head;
    node_t * tail;
} queue_t;
 
int push(queue_t * q, int v){
    node_t * n;
    
    if ( ( n = malloc(sizeof(node_t)) ) == NULL )
        return -1;
    
    n->value = v;
    n->next = NULL;
    
    if ( q->head == NULL )
        q->head = n;
    else
        q->tail->next = n;
    q->tail = n;
    
    return 0;
}
 
int shift(queue_t * q, int * vptr){
    if ( q->head == NULL )
        return -1;
 
    else {
        node_t * n = q->head->next;
        *vptr = q->head->value;
        free(q->head);
        q->head = n;
    }
    
    return 0;
}
 
int menu(void){
    int ret;
    printf("\n1 - push\n2 - shift\n0 - exit\n\n> ");
    return ( scanf("%d", &ret) == 1 ) ? ret : -1;
}
 
int main(void){
    queue_t q = { NULL, NULL };
    int ret;
    
    while ( ret = menu() ) {
        switch ( ret ) {
            case 1 :
                {
                    int val;
                    printf("Value: ");
                    if ( scanf("%d", &val) != 1 ) {
                        fprintf(stderr, "Input error!\n");
                        exit(1);
                    }
                    if ( push(&q, val) ){
                        fprintf(stderr, "Memory error!\n");
                        exit(1);
                    }
                }
                printf("Ok\n");
                break;
            case 2 :
                {
                    int val;
                    if ( shift(&q, &val) )
                        printf("Empty queue.\n");
                    else
                        printf("Returned: %d\n", val);
                }
                break;
            case -1 :
                fprintf(stderr, "Input error!\n");
                exit(1);
                break;
            default :
                fprintf(stderr, "Wrong choice!\n");
                break;
        }
    }
    
    while ( ! shift(&q, &ret) )
        ;
    
    printf("Good bye!\n");
    
    exit(0);
}
 
Текущее время: 23:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru