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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Добавление элемента в начало динамического массива http://www.cyberforum.ru/cpp-beginners/thread536383.html
Господа подскажите пожалуйста ошибку в коде. Не верно работает добавление нового элемента в начало динамического массива. Не могу допетрить как это сделать. Вот код // выводится меню - добавть, удалить, вывести. // работает с дин мас. // открывается доп меню - добавть в конец, в начало, в середину // #include <iostream> #include <cstdlib> #include <conio.h>
C++ Функция, формирующая одномерный массив Написать функцию формирующую одномерный массив, состоящий из абсолютных значений минимальных элементов каждого столбца прямоугольной матрицы 1.написать пример обращения этой фунцкии http://www.cyberforum.ru/cpp-beginners/thread536375.html
C++ Cоставить формулу дисперсии для массива чисел
Есть массив arr. Нужно составить формулу для вычисления дисперсии. К сожалению в математике с этим не сталкивался, поэтому не имею представления как ее составлять, даже после прочтения теоретических ведомостей.
Найти объем V, массу m и площадь S поверхности тела C++
Тело, имеет форму конуса с высотой h и радиусом основания R, изготовленное из материала плотности p. Найти объем V, массу m и площадь S поверхности тела.
C++ вычисления функции трудоемкости алгоритма http://www.cyberforum.ru/cpp-beginners/thread536354.html
есть у меня некий алгоритм, в коментариях росписани к-чество операций for (int i = 0; i < n-1; i++) // 1 операція, n-1 проходів циклу { if (ar > ar) // 4 операції { k = false; // 1 операція break; } } // 3 операції
C++ определить количество вхождений в строку каждого из знаков, встречающихся в ней один или более раз Задание: определить количество вхождений в строку каждого из знаков, встречающихся в ней один или более раз Сам уже пытался ее написать, но ничего не выходит. Теперь вся надежда только на Вашу помощь. Существуют некоторые условия выполнения задания, поставленные преподавателем: 1. Нельзя использовать индексацию массива никаким образом 2. Нельзя вводить строку посимвольно, т.е., допустим... подробнее

Показать сообщение отдельно
nxnx
Формучанин
361 / 292 / 16
Регистрация: 02.11.2010
Сообщений: 1,226
02.04.2012, 03:16     Стек с возможностью перемещения произвольного элемента в вершину.
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;
}
 
Текущее время: 10:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru