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

Реализация стека (исправить код) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ вывод 2-х мерного массива http://www.cyberforum.ru/cpp-beginners/thread692259.html
привет всем. люди добрые помогите вывести 2-х мерный массив как (квадрат),а не встрочку. пожалуйста #include <iostream.h> #include <math.h> int main() { int mas; int max=0,n=2;
C++ Проверка на попадение точки в заданную область Вот еще одна задача. Помогите задать условия, первый раз такую делаю. http://www.cyberforum.ru/cpp-beginners/thread692255.html
C++ Определение количества заполненных элементов массива
Предположим, есть массив, содержащий 10 элементов типа int. Пользователю предлагается вводить числа, потом программа высчитывает среднее арифметическое. Как узнать, сколько элементов массива пользователь заполнил (сколько ввел чисел) ?
Ошибка синтаксиса C++
QApplication::sendEvent( this, new QMouseEvent( QEvent::MouseButtonPress, QPoint(10,10), Qt::LeftButton, Qt::LeftButton, Qt::KeyboardModifiers) );
C++ Если точки могут быть длинами сторон равностороннего треугольника, вычислить площадь и длину высоты. http://www.cyberforum.ru/cpp-beginners/thread692241.html
Даны координаты трех точек на плоскости (а (x1,y1), b (x2,y2), c (x3,y3)). Если они могут быть длинами сторон равностороннего треугольника, вычислить площадь и длину высоты.
C++ Если целые числа упорядочены по возрастанию (a<b<c<d) сменить порядок их следования на противоположный Если целые числа упорядочены по возрастанию (a<b<c<d) сменить порядок их следования на противоположный подробнее

Показать сообщение отдельно
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
08.11.2012, 17:14     Реализация стека (исправить код)
Помогите исправить код, почему-то не компилируется, выдает ошибку:
[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status
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
#pragma once
#include <iostream>
using namespace std;
template<class NODETYPE>
class Stack
{
protected:
    int count;//кількість
    struct Node//структура вузол
    {
        NODETYPE data;//дані шаблонного типу
        Node* prev;//покажчик на попередній елемент
        NODETYPE& getData(void)//функція що повертає сслику на дані
        {
            return data;// повертаємо дані
        }
    };
    Node* bottom;//покажчик на вершину стеку
public:
    Stack(void):count(0), bottom(0)//облнуляємо змінні в констукторі
    {
    }
    ~Stack(void)//дестуктор
    {
        clear();//викликаємо функцію очищення
    }
    
    void push(NODETYPE someData)//функція яка добаляє елемент на вершину стеку, приймає на вхід дані
    {
        Node* Temp = new Node;//створюємо новий елемент
        Temp->data = someData;//заповнюємо його дані вхідними даними
        Temp->prev = bottom;//вказуємо що вершина знаходиться перед ним
        bottom = Temp;//тепер вершина і є він
        count++;//інкрементуємо лічильник
    }
    void pop(void)//функція видалення елементу з вершини
    {
        if(!bottom)//у разі коли вершини не існує
        {
            cout<<"Err. Stack is empty."<<endl;//виводимо на екран помилку
            return;//виходимо з функції, не повертаючи значення
        }
        Node* pTemp = bottom->prev;//створюємо новий елемент який зберігає в собі елемент на рівень нижчий вершини
        delete bottom;//видаляємо вершину
        bottom = pTemp;//нова вершина рівна тому елементу
        count--;//декрементуємо лічильник
    }
    void clear(void)//функція очищення
    {
        while(bottom)//циклічно виконуємо доки існую вершина
        {
            Node* delPtr = bottom->prev;//створюємо новий елемент який зберігає в собі елемент на рівень нижчий вершини
            delete bottom;//видаляємо вершину
            bottom = delPtr;//нова вершина рівна тому елементу
        }
        count = 0;//обнуляємо лічильник
        bottom = NULL;//обнуляємо вершину
    }
    NODETYPE getBottomData(void)const//функція що повертає дані з вершини
    {
        return bottom->data;//повертаємо дані вершини
    }
    int rCount(void)const//функція що повертає кількість елементів
    {
        return count;//повертаємо лічильник(поточна кількість)
    }
    friend ostream& operator<<(ostream &o, const Stack &obj)//оператор запису в поток
    {
        if(!obj.bottom)//у разі коли обєкту не існує
        {
            o<<"Err. Stack is empty."<<endl;//записуємо в поток меседж про помилку
            return o;//повертаємо ссилку на поток для того щоб можна було робити так cout<<stack<<"lolwto?";
        }
        o<<"\n";//записуємо в поток перехід на новий рядок
        Node* p = obj.bottom;//створюємо новий покажик який зберігає в собі вершину переданого в оператор обєкту
        for(; p; p = p->prev)//циклічно перебраємо всі елементи покажчика
        {
            o<<" * "<<p->data<<" * "<<endl;//записуючи в поток виведення дані з зірочками по сторонам і переходами на новий рядок
        }
        o<<endl;//перехід на новий рядок
        return o;
    }
    friend istream& operator>>(istream &i, Stack &obj)//оператор зчитування з потоку
    {
        Node* b = obj.bottom;//створюємо новий покажик який зберігає в собі вершину переданого в оператор обєкту
        for(; obj.bottom; obj.bottom = obj.bottom->prev)//циклічно перебраємо всі елементи об'єкту
        {
            cout<<"Insert stack data: ";//виводимо на екран "введіть дані"
            i>>obj.bottom->getData();//зчитуємо  потоку дані записуючи їх в дані елементу стеку
        }
        obj.bottom = b;//відновлюємо покажчик на голову
        return i;//повертаємо ссилку на поток
    }
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru