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

СТЕК. Запись последующего элемента. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Черные пятницы http://www.cyberforum.ru/cpp-beginners/thread283042.html
Используя перечисляемый тип, определить тип «дни недели» и выдать все «черные» пятницы этого года (т.е. число месяца равно 13, а день недели – пятница).
C++ Визуальный редактор С++ Недавно знакомый попросил помочь с Excel, совершенно случайно залез в редактор VBA радости не было границ не надо знание WIN API чтоб написать простейшую бухгалтерскую прогу, если кто-нибудь встречал что-нибудь подобное для с++ был-бы благодарен за подсказку(я имею ввиду визуальное создание окон,пользовательских форм и других простейших элементов в винде) дело в том что я-бы и пользовался VBA... http://www.cyberforum.ru/cpp-beginners/thread283041.html
Создание немодального окна. C++
Просветите, пожалуйста. Как создать дочернее немодальное окно через CreateWidow(Ex)? Лучше всего примером. Я так понял надо регистрировать свой класс со своей функцией обработки сообщений? На всякий случай, что мне нужно: Я пишу длл. Есть другая длл, которая создает окно, в этом окне есть пустое место и контол(для ввода текста). Мне нужно на пустом месте создать свое окно (или что-то вроде...
C++ Динамическая отрисовка фигур в picturebox мышью
Всем привет. В общем, хотелось бы рисовать фигуры мышью, вместо того, чтобы каждый раз вводить координаты вершин. Находил в сети ряд примеров, но все они на C#. Хотелось бы на C++. Хотя бы пример отрисовки мышью обычной линии, а с остальными, думаю, сам разберусь.
C++ Ввести данные http://www.cyberforum.ru/cpp-beginners/thread283029.html
Помогите пожалуйста ввести сруктуру типа: struct employee { char*name; float salary; int stage };
C++ Использование указателей на функции Составить одну из двух задач с использованием указателя на функцию 1. Составить функцию нахождения корня уравнения f(x)=0 методом половинного деления интервала , если функция f(x)=0 непрерывная на этом интервале и в конечных точках интервала принимает значения разных знаков. Корень вычислить с точностью e(|f(x)|<e). Интервал разбить на отрезки с шагом h. Используя эту функцию найти корни... подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
26.04.2011, 21:24     СТЕК. Запись последующего элемента.
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <stdio.h>
#include <stdlib.h>
 
/* STRUCT stack_node
 * node of stack includes value and 
 * address to previous node
*/
struct stack_node {
    int value;
    struct stack_node *prev;
};
 
struct stack_node * stack_node_new(struct stack_node * prev, int value) {
    struct stack_node *node = (struct stack_node *) malloc(sizeof(struct stack_node));
    node->value = value;
    node->prev = prev;
}
 
/* STRUCT stack
 * stack includes pointer to stack's top
*/
struct stack {
    struct stack_node *top;
};
 
size_t stack_size(struct stack *s) {
    size_t current_size = 0;
    struct stack_node * node;
 
    for (node = s->top; node != NULL; node = node->prev) {
        ++current_size;;
    }
 
    return current_size;
}
 
int stack_empty(struct stack *s) {
    return s->top == NULL;
}
 
void stack_push(struct stack *s, int value) {
    s->top = stack_node_new(s->top, value);
}
 
void stack_pop(struct stack *s) {
    struct stack_node * removed;
    if (!stack_empty(s)) {
        removed = s->top;
        s->top = s->top->prev;
    }
}
 
int stack_top(struct stack *s) {
    if (!stack_empty(s)) 
        return s->top->value;
    else
        return 0;
}
 
struct stack * stack_create() {
    struct stack * stack = (struct stack *)malloc(sizeof(struct stack));
    stack->top = NULL;
    return stack;
}
 
void stack_destroy(struct stack *s) {
    while (!stack_empty(s)) 
        stack_pop(s);
 
    free (s);
}
 
int main() {
    struct stack * s0 = stack_create();
    struct stack * s1 = stack_create();
    struct stack * s2 = stack_create();
    int i, a, n;
 
    printf("Введите a: ");
    scanf ("%d", &a);
 
    printf("Введите n: ");
    scanf ("%d", &n);
 
    while (n--) {
        printf("> ");
        scanf ("%d", &i);
 
        stack_push(s0, i);
    }
 
    while (!stack_empty(s0)) {
        if (stack_top(s0) > a)
            stack_push(s1, stack_top(s0));
        else
            stack_push(s2, stack_top(s0));
 
        stack_pop(s0);
    }
 
    while (!stack_empty(s1)) {
        printf ("%d ", stack_top(s1));
        stack_pop(s1);
    }
 
    printf ("\n");
 
    while (!stack_empty(s2)) {
        printf ("%d ", stack_top(s2));
        stack_pop(s2);
    }
 
    stack_destroy(s0);
    stack_destroy(s1);
    stack_destroy(s2);
 
    return 0;
}
 
Текущее время: 01:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru