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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
KostyaKulakov
Заблокирован
#1

написание функции - C++

21.08.2012, 15:18. Просмотров 550. Ответов 4
Метки нет (Все метки)

Stack.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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "Stack.h"
 
Node* push(Node** pTop, info_t value)
{
    Node* newNode = new Node;
    newNode->info = value;
    newNode->prev = *pTop;
    *pTop = newNode;
    return newNode;
}
 
 
info_t pop(Node** pTop)
{
    Node* oldTop = *pTop;
    info_t info = oldTop->info;
 
    *pTop = (*pTop)->prev;
    delete oldTop;
    return info;
}
 
info_t getTopValue(Node* top)
{
    return top->info;
}
 
void printStackElement(Node** top)
{
 
    while (!isEmpty(*top))
    {
        cout << pop(*&top) << endl;
    }
 
 
    
}
 
bool isEmpty(Node* top)
{
    return top == NULL;
}
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
#ifndef STACK_H_
#define STACK_H_
 
#include <iostream>
using namespace std;
 
#define NULL 0
 
typedef char info_t;
 
struct Node
{
    info_t info;
    Node* prev;
};
 
/* Функция добавляет в стек новый элемент со значением value
   и возвращает указатель на новую вершину стека */
Node* push(Node** pTop, info_t value);
 
/* Функция удаляет элемент с вершины стека и возвращает
   хранившееся там значение. Функция НЕ проверяет, пуст ли стек.
   Ответственность за проверку того, что стек не пуст, ложится
   на вызывающую функцию. */
info_t pop(Node** pTop);
 
/* Функция возвращает значение, хранящееся в элементе, находящемся
   в вершине стека. Ответственность за проверку того, что стек не пуст,
   ложится на вызывающую функцию. */
info_t getTopValue(Node* top);
 
/* Функция проверяет, не пуст ли стек */
bool isEmpty(Node* top);
 
/* Функция печатает, все элементы стэка. */
void printStackElement(Node** top);
 
#endif
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "Stack.h"
 
int main()
{
    Node* top = NULL;
 
    // Заполнение стека некоторыми элементами
    push(&top, '(');
    push(&top, '[');
    push(&top, '{');
 
    // Извлечение и печать всех элементов стека
    printStackElement(&top);
    cout << endl;
 
    printStackElement(&top);
//  printStackElement(&top);
 
}
суть в том нужно сделать так чтобы функция printStackElement не трогала значения ну те выводила их и не изменяла ну или потом возращала на свои места. она ивзлекает их и всё только 1 раз можно эту функцию применить а мне надо чтобы хоть сколько. вот хз как сделать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2012, 15:18     написание функции
Посмотрите здесь:

Написание функции - C++
Ребята можете пожалуйста помочь с задачей? Написать функцию, которая возвращает строку, в которой все символы исходной строки...

Написание хэш-функции - C++
Решил освоить хэш-функции, ну и, соответственно, написать реализации большинства. Вопросы неизбежны, поэтому, думаю, буду отписываться в...

Написание функции для for_each - C++
Хочу распечатать список list через свою функцию используя for_each, но я не могу понять как заставить эту for_each работать с моей...

Написание своей функции swap() - C++
Доброго времени суток. Решил написать свою функцию по смене местами переменных переменных. Вот код: #include &lt;iostream&gt; #include...

Написание функции сложения строк - C++
Необходимо написать функцию сложения двух строк по следующему принципу: &quot;abc&quot; + &quot;qwerty&quot; -&gt; &quot;aqbwcerty&quot; У меня получилось, но не до...

Написание функции на С++ (поиск максимального элемента) - C++
Написать функцию поиска максимального элемента, использовать ее для поиска среди 4х и 5 чисел. Количество чисел передавать в функцию в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.08.2012, 15:27     написание функции #2
сделай класс "стек" и будет тебе счастье
KostyaKulakov
Заблокирован
21.08.2012, 15:56  [ТС]     написание функции #3
я ешё про классы незнаю нечего можно ли другим способом?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.08.2012, 16:02     написание функции #4
Цитата Сообщение от KostyaKulakov Посмотреть сообщение
я ешё про классы незнаю
так узнай
Цитата Сообщение от KostyaKulakov Посмотреть сообщение
можно ли другим способом?
сделать через ж... можно всегда
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2012, 16:02     написание функции
Еще ссылки по теме:

С++ Программа ,Функции , Варианты написание программы - C++
Можно ли эту программу записать немного иначе , даже не знаю как сказать , просто начали придираться к тонкостям)) вроде хотят чтобы...

Написание программы вычисления функции. Ошибка - C++
Написал программу, не могу понять, где описать часть условия, и вывести главное. Задание написать программу вычисления функции: ...

Написание функции для счета в динамическом массиве - C++
Нужно с помощью функций вывести динамический массив (это я сделал), посчитать к-во отрицательных чисел в каждой строке (это я тоже сделал),...

Написание рекурсивной функции вычисления многочлена по схеме Горнера - C++
не понимаю что требуется, по этому задание прикрепляю чтобы не ошибиться


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
21.08.2012, 16:02     написание функции #5
Значит пришло время узнать. И про шаблоны.

В Node же есть указатель prev. Пройдитесь циклом по типу
C++
1
2
3
for (Node *i = stack_top; i != NULL; i = i->prev) {
  std::cout << i->info;
}
Yandex
Объявления
21.08.2012, 16:02     написание функции
Ответ Создать тему
Опции темы

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