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

работа со стеком - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ объяснить программму в С++ http://www.cyberforum.ru/cpp-beginners/thread41798.html
#include<time.h> #include<iostream> using namespace std; int **A; int main() { int i,j,pos1,pos2,t,N; float sr_ar,min,max; int *B;
C++ разбиение файлов на части Здравствуйте! Подскажите пожайлуста ссылки на исходники разбиения файлов на части произвольного размера или подскажите информацию где искать (книги, ссылки), а то курсак задали http://www.cyberforum.ru/cpp-beginners/thread41790.html
C++ Очень стыдно!
Скажите пожалуйста, почему 2 % 4 = 2 - (остаток = 2)??? int n=0; n=2%4; cout << n << "\n";
Несколько вопросов по WinAPI C++ WinAPI
1. Как получать сообщения другого окна? Приложение запускает ИЕ через ShellExecuteA(hWnd,"open",PATH,NULL,NULL,SW_MAXIMIZE), а потом ждет нажатия кнопки мыши, кое-где написано что первый аргумент и указывает на родительское окно, которое должно получать сообщения, однако при закрытии hWnd, IE продолжает работать, ну и конечно сообщений никаких не получает... Это ведь можно как-то делать без...
C++ Как в макросе передать параметр в строковый литерал? http://www.cyberforum.ru/cpp-beginners/thread41741.html
Как в макросе передать параметр в строковый литерал? #define f(s) "left##s##right" не работает. Т.к. по команде cout << f(my_string) << endl ; выводится left##s##right а я хотел, чтобы вывелось leftmy_stringright.
C++ натуральное число Предоставлено натуральное число n. Получить все простые делители этого числа. подробнее

Показать сообщение отдельно
YurA_280784
Заблокирован
24.06.2009, 18:01     работа со стеком
Мне кажется всё лучше через класс сделать, вот что вышло
Stack.h
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
#ifndef STACK_H
#define STACK_H
 
class CStack
{   
private:
    int max;
    int num;
    int * stack;
public:
    CStack(){max = 1;num = 0;stack = (int *)malloc(sizeof(int));}
    CStack(int _max)
    {
        SetMax(_max);
    }
    void SetMax(int _max);
    void release();
    void push(int x);
    int pop();
};
typedef CStack *LPCSTACK;
 
void CStack::SetMax(int _max)
{
    if(0 < _max)
    {
        max = _max;
        stack = (int *)realloc((void *)stack,max*sizeof(int));
    }
}
 
void CStack::push(int x)
{
    int i = num + 1;
    if(!(max - 1 < i))
    {
        for(num = i;i > 0; i--)
            stack[i] = stack[i - 1];
        stack[0] = x;
    }
    else
        printf("\r\nStack overflow!!!\r\n");
}
 
int CStack::pop()
{
    int RetVal = stack[0];
    for(int i = 0;i < num; i++)
        stack[i] = stack[i + 1];
    return RetVal;
}
 
void CStack::release()
{
    max = 0;
    num = 0;
    stack = (int *)realloc((void *)stack,sizeof(int));
    free((void *)stack);
}
 
#endif
Основной модуль как-нибудь.cpp
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
#include <windows.h>
#include <stdio.h>
#include "stack.h"
 
LPCSTACK lps = new CStack();
 
void main()
{
    printf("Enter steck size\n");
    int max;scanf("%d",&max);
    lps->SetMax(max);
    printf("Enter 4 elements\n");
    for(int i = 0,iEl; i < 4; i++)
    {
        scanf("%d",&iEl);lps->push(iEl);
    }
    printf("\nSteck have:\n");
    for (i = 0; i < 4; i++)
    {
        iEl = lps->pop();
        printf("\r\n%d ",iEl);
    }
    printf("1 - enter new numbers\r\n");
    scanf("%d",&i);
    if(i == 1)
        main();
}
Изображения
 
Вложения
Тип файла: rar test_100.rar (818 байт, 62 просмотров)
 
Текущее время: 09:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru