Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Как реализовать директиву #define для создания шаблона отпределения #define ? http://www.cyberforum.ru/c-beginners/thread779332.html
Здравствуйте уважаемые. При написании программы появилась необходимость задать шаблон создания #define через #define (извините за тавтологию) И никак не получается его реализовать Привожу код: ...
C (СИ) Вывести максимальный элемент, встречающийся более одного раза
Данн массив A(k*m)Нужно вывести максимальный элемент встречающийся более одного раза #include "stdafx.h" #include "iostream" using namespace std; int main() {...
C (СИ) Переставить элементы массива по правилу
Дано одномерный массив В, который составляется с 2n элементов. Розместить в такой последовательности B,B,....,B,B,B,....,B
C (СИ) Определить, встречается ли число 7 в массиве целых чисел Напишите программу, которая дает ответ "да" или "нет", в зависимости от того, встречается ли число 7 у массиве целых чисел http://www.cyberforum.ru/c-beginners/thread779191.html
C (СИ) Eclipse для С http://www.cyberforum.ru/c-beginners/thread779168.html
Чтобы компилировать C и C++ исходные тексты, используя Eclipse что необходимо установить?
Найти сумму положительных элеменов на главной диагонали матрицы C (СИ)
#include <stdio.h> #include <conio.h> #include <alloc.h> int xsum(int n, int *x) { int i,s; for(s=0,i=0;i<n;i++) s+=x; return s; }
Вычисление суммы бесконечного ряда C (СИ)
Условие: вот мои наработки но мне кажется тут все не правильно #include <stdio.h> #include <conio.h> #include <math.h> main() { double S,xmin,xmax=1,wag=0.1,e=pow(10,-4),n,i,fact,z; ...
C (СИ) Найти длину медианы BM и биссектрисы CW треугольника Треугольник задан кординатами его вершин А(0 ; 0), В(і ; і-1), С(-і ; і+1) где і - номер варианта. Вариант вводить с клавиатуры. Знайти длину медианы BM и биссектрисы CW. http://www.cyberforum.ru/c-beginners/thread779055.html
C (СИ) Найти сумму положительных элементов матрицы на главной диагонали http://www.cyberforum.ru/c-beginners/thread779047.html
матрица 4х4 вводится из файла, задачу решать с помощью подпрограммы
C (СИ) Алгоритм решения системы уравнений Допустим у нас имеется система уравнений с двумя неизвестными. нужно составить алгоритм на языке СИ, который бы решил эту систему. была идея реализовать это с помощью метода гауса, но также не могу... http://www.cyberforum.ru/c-beginners/thread778990.html
MrGluck
Форумчанин
Эксперт CЭксперт С++
8121 / 4973 / 1436
Регистрация: 29.11.2010
Сообщений: 13,456
05.02.2013, 18:36 0

Инициализация, добавление и удаление элементов в СТЕКЕ через связный список

05.02.2013, 18:36. Просмотров 1851. Ответов 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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include <cstddef>
#include <iterator>
#include <stdexcept>
 
template <class T>
class Stack
{
    public:
        Stack();
        template <class InputIterator>
        Stack(InputIterator beg, InputIterator end);
        Stack(const Stack &);
        Stack& operator= (const Stack &);
        ~Stack();
 
        bool empty() const;
        void push(const T& obj);
        void pop();
        std::size_t size() const;
        const T& top() const;
        T& top();
 
    private:
        T& getTopData() const;
        void swap(const Stack &) throw();
 
        struct Node
        {
            T data_;
            Node *next_;
            Node(const T &data, Node *nextNode);
            Node(const Stack::Node &);             // prohibit copy
            Node& operator= (const Stack::Node &); // and assignment
        } *Top;
        std::size_t counter_;
};
 
 
template <class T>
Stack<T>::Stack() : Top(nullptr), counter_(0) {}
 
template <class T>
template <class InputIterator>
Stack<T>::Stack(InputIterator beg, InputIterator end) : Stack()
{
    while(beg != end)
    {
        push(*beg);
        ++beg;
    }
}
 
template <class T>
Stack<T>::Stack(const Stack &s) : Stack()
{
    Stack tmp;
    for (Node *n = s.Top; n; n = n->next_)
        tmp.push(n->data_);
    for (Node *n = tmp.Top; n; n = n->next_)
        this->push(n->data_);
}
 
template <class T>
Stack<T>& Stack<T>::operator= (const Stack &s)
{
    if(this != &s)
        Stack(s).swap(*this);
    return *this;
}
 
template <class T>
Stack<T>::~Stack()
{
    while(Top)
        pop();
}
 
template <class T>
bool Stack<T>::empty() const
{
    return Top == nullptr;
}
 
template <class T>
void Stack<T>::push(const T& obj)
{
    Top = new Node(obj, Top);
    counter_++;
}
 
template <class T>
void Stack<T>::pop()
{
    if (!Top)
        return;
    Node *tmp = Top;
    Top = Top->next_;
    delete tmp;
    counter_--;
}
 
template <class T>
std::size_t Stack<T>::size() const
{
    return counter_;
}
 
template <class T>
const T& Stack<T>::top() const
{
    return getTopData();
}
 
template <class T>
T& Stack<T>::top()
{
    return getTopData();
}
 
template <class T>
T& Stack<T>::getTopData() const
{
    try
    {
        if (!Top) throw std::out_of_range("Trying to access to nothing");
        return Top->data_;
    }
    catch (const std::exception &e)
    {
        std::cerr << e.what() << std::endl;
    }
}
 
template <class T>
Stack<T>::Node::Node(const T &data, Node *next) : data_(data), next_(next) {}


Вернуться к обсуждению:
Инициализация, добавление и удаление элементов в СТЕКЕ через связный список
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2013, 18:36
Готовые ответы и решения:

Связный список. Необходимо создать новый связный список только из положительных элементов
Задача: Прочитать из файла связный список. Потом из этого списка создать еще один, в котором будут...

Инициализация, добавление и удаление элементов в СТЕКЕ
День добрый, нужна помощь со стеками. Передо мною стоит задача: 1) Инициализировать СТЕК через...

Связный список; удаление равных максимальному элементов
считать числа в связный список, найти макс. элемент, удалить из списка все элементы, равные...

Связный список (Используя структуру описания даты, построить связный список студентов, сформированный в алфавитном порядке)
Здраствуйте! Помогите пожалуйста найти косяк. Выводится только первая строчка из списка студентов....

Связный список, удаление
написал программу работы со списком... проблема в удалении элемента по его имени(в процедуре...

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