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

Теория/списки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Записать строки в многомерный символьный массив http://www.cyberforum.ru/cpp-beginners/thread517015.html
Добрый день помогите пожалуйста. Вот есть массив mass, где 255 это длинна строки а 5 это количество строк вот как мне зависти эти самые 5 строк в многомерный массив
C++ Фунции sin и cos Здравствуйте. Начал писать игру, аналог знаменитых Tank Wars. При использовании библиотечных(math.h) функций sin и cos появилась проблема. Обе функции возвращают значение в радианах. И вот... http://www.cyberforum.ru/cpp-beginners/thread517013.html
Составить программу, которая бы по имеющемуся списку призывников в файле... C++
Требуется составить программу, которая бы по имеющемуся списку призывников в файле priziv.txt (строка содержит фамилию призывника, затем через запятую его заболевания) и списку заболеваний в файле...
C++ "общение" потоков
Здравствуйте. Будут два потока. оба получают 2 иттератора (для конкретности vector<int>). нужно: один поток находит число, меньшее данного. Останавливается. Ждёт, пока остановится второй поток....
C++ товарообмен стран http://www.cyberforum.ru/cpp-beginners/thread516899.html
помогите пожалуйста дан файл, содержащий информацию о товарообмене 5и стран в течение 20 лет. под товарообменом понимаются данные об экспорте и импорте из i-ой страны в j-ю. найти все страны у...
C++ текстовый файл помогите пожалуйста Дано два файла, содержащих одинаковое количество целых чисел. перезаписать первый файл следующим образом: если число из второго файла больше соответствующего числа в первом, то... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
12.03.2012, 17:59
Вот пример простого связного списка — стека (LIFO):
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
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
 
struct node
{
    struct node* next; /* следующий элемент */
    int data; /* значение, которое хранится в узле */
};
 
struct stack
{
    struct node* top; /* вершина стека */
};
 
/* добавление элемента в стек */
void push(struct stack* stack, int value)
{
    struct node* new_node = malloc(sizeof(struct node));
    
    new_node->data = value;
    new_node->next = stack->top;
    
    stack->top = new_node;
}
 
/* получение элемента с вершины стека */
int top(const struct stack* stack)
{
    assert(stack->top != NULL);
 
    return stack->top->data;
}
 
/* удаление элемента с вершины стека */
void pop(struct stack* stack)
{
    struct node* del_node = stack->top;
    assert(stack->top != NULL);
    stack->top = stack->top->next;
    free(del_node);
    del_node = NULL;
}
 
/* проверка стека на пустоту */
int empty(const struct stack* stack)
{
    return stack->top == NULL;
}
 
/* инициализация стека */
void init(struct stack* stack)
{
    stack->top = NULL;
}
 
/* очистка стека */
void clear(struct stack* stack)
{
    while(!empty(stack))
    pop(stack);
}
 
int main(void)
{
    struct stack stack;
    int i;
    
    init(&stack);
 
    for(i = 0; i < 5; ++i)
    {
    printf("Push %d\n", i);
    push(&stack, i);
    }
 
    while(!empty(&stack))
    {
    printf("Pop %d\n", top(&stack));
    pop(&stack);
    }
    
    clear(&stack);
    exit(0);
}
Функции, с которыми работает пользователь (init, push, pop и т.д.) работают только с типом struct stack, и это логично. Пользователю не нужно ничего знать о типе узла стека, об этом заботятся определения этих функций
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru