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

Составить Алгоритм работы программы (программа есть) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Практика ребята! http://www.cyberforum.ru/cpp-beginners/thread319398.html
1->С помощью функции произвести пересчёт расстояния из верст километры (1 верста-это 1066.8). 2-> Определить колличество элементов одномерного массива, лежащих в диапозоне от A до B. ...
C++ Программа, собранная в MinGW требует зависимые библиотеки Пишу такой код #include <iostream> int main() { std::cout << "Hello World!"; return 0; } компилирую так g++ -O2 -c hello.cpp g++ -o hello hello.o -s http://www.cyberforum.ru/cpp-beginners/thread319373.html
C++ разроботать программу с использованием классов и динамических массивов
разроботать программу с использованием классов и динамических массивов: дано n матриц произвольной размерности :реализовать методы 1 сумма элементов по периметру,2 произведение элементов не включая...
C++ что-то с вводом
Ввод параметров b и e почему-то не осуществляется и программа их "проскакивает". // фыва.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h>...
C++ подкоректировать классом с разделителем http://www.cyberforum.ru/cpp-beginners/thread319345.html
требуется разработать два класса на основе класса Date они должны читать и выдавать в поток значения даты первый класс-дата с текстом(месяц вводится не цифрой, а своим названием) второй-дата с...
C++ Не работает try catch пишу такой код try{ int k=0; int i=44/k;} catch(...) {cout<<"OSIBKA BLIN "<< endl;} но программа зависает как будто нет обработчика исключений try подробнее

Показать сообщение отдельно
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
15.06.2011, 15:26
Вот тебе простенький стек.
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
template<class  T>
class  xStack  {
   struct  node {  // внутрення структура для организации узлов в списке
    node*   next;
    T           data;
    node(void) : next(NULL) {}
   };
private:
   node*   lst;
public:
    xStack(void) {
    lst   = NULL;
    }
    ~xStack(void) {
             this->clear();
    }
public:
// метод добавляет данные в стек по принципу стека - LIFO(last in, first out) - последним пришёл 
// первым вышел
void  push(T hData) {
    node*  ptr = new node();
    ptr->next   = lst;
    ptr->data  = hData;
    lst = ptr;
}
 
// выталкивает элемент из стека безвозвратно с освобождением динамической памяти
void   pop(void) {
     node*  ptr = lst;
     lst            = lst->next;
     if(ptr) {
            delete ptr;
     ptr = NULL;
     }
}
 
// возвращает  элемент  из верхушки стека
T&  top(void) {
        return  lst->data;
}
    
// функция освобождает память удаляя все элементы из стека
void clear(void) {
   while(lst != NULL) {
             node* ptr = lst;
      lst = lst->next;
     if(ptr) 
           delete ptr;
     ptr = NULL;
   }
   lst = NULL;
}
 
bool empty(void) const {
    return  ! lst;
}
 
// метод возвращает число элементов в стеке
int  get_size(void) const {
         int len = 0;
         for(const node*  ptr = lst; ptr != NULL;  ptr = ptr->next, len++);
     return len;
}
 
// метод для  нахождения элемента  в стеке, если  элемент найдётся то метод вернёт - true
 bool  find(T  hData) const {
       for(const node*  ptr = lst;  ptr != NULL;  ptr = ptr->next) {
    if(! memcmp(&ptr->data, &hData, sizeof(T)))
        return  true;
       }
       return  false;
}
};
 
 
 
 void  main(){
 
xStack<long>  st;   // LIFO
st.push( 100000L );
st.push( 20007L );
st.push( 5000000L );
st.push( 333333L );
st.push( -4000000L );
    
printf("top stack element = %d\n", st.top());
    
st.top() =  7777777L;
 
if(st.find( 5000000L ))
      puts("YES VALUE STACK");
 
while( ! st.empty() ) {
    printf("\t num = %d\n", st.top() );
    st.pop();
}
    
//  st.clear();
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru