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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kelarion
0 / 0 / 0
Регистрация: 02.04.2012
Сообщений: 11
#1

Стек с возможностью перемещения произвольного элемента в вершину. - C++

02.04.2012, 02:16. Просмотров 472. Ответов 1
Метки нет (Все метки)

Стек с возможностью перемещения произвольного элемента в вершину.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2012, 02:16     Стек с возможностью перемещения произвольного элемента в вершину.
Посмотрите здесь:

Создать стек из произвольного числа строк и удалить из него все слова, содержащии абревиатуру BY C++
Вставка в одномерный массив произвольного элемента. C++
СТЕК. Запись последующего элемента. C++
C++ Структура: стек из произвольного количества элементов
Составьте программу, которая создает стек из произвольного количества элементов C++
C++ stl, перемещение элемента из вектора в стек
стек из произвольного кол-ва элементов C++
Создать массив указателей с возможностью удаления любого элемента C++
C++ Найти три наименьших элемента произвольного одномерного массива
C++ Найти три наименьших элемента произвольного одномерного массива
Вычислить произведение максимального и минимального элемента произвольного двумерного массива C++
Написать функции добавления и удаления произвольного элемента динамического массива C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
02.04.2012, 03:16     Стек с возможностью перемещения произвольного элемента в вершину. #2
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
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
 
#define MAX_COUNT 10
typedef struct
{
    size_t count;
    size_t max_count;
    int data[];
}stack;
 
stack* alloc_stack(int size)
{
    stack* data=(stack*)malloc(sizeof(stack)+size*sizeof(int));
    if (data)
    {
        data->count=0;
        data->max_count=size;
    }
    return data;
}
 
void free_stack(stack* data)
{
    free(data);
}
 
 
void push(stack* data,int value)
{
    assert(data->count<data->max_count);
    data->data[data->count]=value;
    data->count++;
}
 
 
int pop(stack* data)
{
    assert(data->count>0);
    data->count--;
    return data->data[data->count];
}
 
void set_top(stack* data,size_t index)
{
    assert(index<data->count);
    int this=data->data[index];
    register size_t i;
    for (i=index;i<data->count;i++)
        data->data[i]=(i+1==data->count)?this:data->data[i+1];
    
}
 
 
void print_stack(stack* data)
{
    printf("-----\n");
    register size_t i;
    for (i=1;i<=data->count;i++)
        printf("%d%s\n",data->data[data->count-i],i==1?"<- top of stack":"");
}
int main(void)
{
    stack* st=alloc_stack(10);
    assert(st);
    push(st,1);
    push(st,2);
    push(st,3);
    
    print_stack(st);
    
    set_top(st,0);
    print_stack(st);
    set_top(st,0);
    
    print_stack(st);
    printf("pop from stack: %d\n",pop(st));
    print_stack(st);
    free_stack(st);
   
    return 0;
}
Yandex
Объявления
02.04.2012, 03:16     Стек с возможностью перемещения произвольного элемента в вершину.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru