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

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

Войти
Регистрация
Восстановить пароль
 
Дана18
0 / 0 / 0
Регистрация: 10.10.2014
Сообщений: 121
#1

Создание, просмотр и удаление элементов списка, организованного по принципу LIFO - C++

18.11.2014, 14:49. Просмотров 270. Ответов 3
Метки нет (Все метки)

Что делать? Программа просит идентификатор true, false.
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
#include "stdafx.h"
#include <iostream>
#include <process.h>
#include <conio.h>
using namespace std;
//визначення перелічуваного типу користувача boolean
enum boolean(true, false);
//визначення шаблону елемента списку за допомогою типу struct
struct stack{
    char s;
    stack* p;
};
//оператор typedef дозволяє створити тип користувача Stk, який є
//аналогом стандартного типу stack*
typedef stack* Stk;
Stk stk;
//функція reset() повертає порожній покажчик (адресу) вершини стеку,
//тобто відбувається “скидання” стеку
Stk reset()
{
    return NULL;
}
//функція push(char c, Stk top) заносить символ с, що введено, на вершину стеку, утворюючи новий елемент списку типу stack и
//повертає його адресу як адресу першого елемента в списку
Stk push(char c, Stk top)
{
    stk = new stack;
    if (stk == NULL){
        cout << "\n Помилка під час розподілу пам’яті";
        exit(1);
    }
    stk->s = c;
    if (top != NULL) stk->p = top;
    return stk;
}
/*функція pop( Stk top) виштовхує елемент вершини, видає символ ,
що зберігається в вершині, на екран, замінює адресу попередньої
вершини адресою вершини, що йде за нею, а місце, що було розподілено
під попередню вершину, звільняється (повертається до “купи” вільної
пам’яті)*/
Stk pop(Stk top)
{
    cout << top->s;
    stk = top;
    top = top->p;
    delete stk;
    return top->p;
}
//функція empty( const Stk top) перевіряє, чи є стек порожнім, повертає
// константу false, якщо це так
boolean empty(const Stk top)
{
    return (boolean)(top == NULL);
}
void main()
{
    Stk top;
    char str[] = "fghg hfgt dtdt dtyd dtyf";
    int i = 0;
    cout << str;
    top = reset();
    while (str[i])
        top = push(str[i++], top);
    while (!empty(top))
        top = pop(top);
    getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2014, 14:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание, просмотр и удаление элементов списка, организованного по принципу LIFO (C++):

Циклический сдвиг односвязного списка, организованного структурами, на N элементов вправо/влево - C++
Подскажите, как лучше всего циклически сдвинуть односвязный список, организованный структурами, на N элементов вправо/влево, может ему...

Двунаправленный список (добавление/удаление элементов в голову, просмотр списка, реализовать дублирование элементов с заданным значением) - C++
Здравствуйте! Помогите написать программу, обеспечивающую работу с двунаправленным нециклическим списком: добавление/удаление элементов в...

Вывод списка, LIFO и FIFO - C++
Программа создает два списка: один с числами, второй эти числа делит на четные и нечетные. Но при создании или выводе второго списка...

Удаление элементов из односвязного списка списка - C++
Привет всем знатокам, суровым программистам и профессионалам своего дела. Засел за реализацией списка и что то пока не могу понять. Задача...

Создание программы со своей библиотекой ( удаление элементов с N по M в строке и удаление лишних пробелов(если 2 и более оставить один)) - C++
добрый день. помогите, пожалуйста понять мои ошибки в работе. Мне нужно написать программу со своей библиотекой, которая включает в себя...

Удаление элементов из списка - C++
Товарищи, прошу о помощи! Задание такое: создать список из целых чисел. Удалить лишние элементы в списке так, чтобы в результирующем...

3
mss307
118 / 118 / 25
Регистрация: 14.12.2013
Сообщений: 352
18.11.2014, 14:55 #2
Цитата Сообщение от Дана18 Посмотреть сообщение
Что делать? Программа просит идентификатор true, false.
Подробней скажи, что ты хочешь получить и что получаешь по факту? если ошибку, то текст ошибки представь.

Добавлено через 22 секунды
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
#include "stdafx.h"
#include <iostream>
#include <process.h>
#include <conio.h>
using namespace std;
//визначення перелічуваного типу користувача boolean
enum boolean(true, false);
//визначення шаблону елемента списку за допомогою типу struct
struct stack{
char s;
stack* p;
};
//оператор typedef дозволяє створити тип користувача Stk, який є
//аналогом стандартного типу stack*
typedef stack* Stk;
Stk stk;
//функція reset() повертає порожній покажчик (адресу) вершини стеку,
//тобто відбувається “скидання” стеку
Stk reset()
{
return NULL;
}
//функція push(char c, Stk top) заносить символ с, що введено, на вершину стеку, утворюючи новий елемент списку типу stack и
//повертає його адресу як адресу першого елемента в списку
Stk push(char c, Stk top)
{
stk = new stack;
if (stk == NULL){
cout << "\n Помилка під час розподілу пам’яті";
exit(1);
}
stk->s = c;
if (top != NULL) stk->p = top;
return stk;
}
/*функція pop( Stk top) виштовхує елемент вершини, видає символ ,
що зберігається в вершині, на екран, замінює адресу попередньої
вершини адресою вершини, що йде за нею, а місце, що було розподілено
під попередню вершину, звільняється (повертається до “купи” вільної
пам’яті)*/
Stk pop(Stk top)
{
cout << top->s;
stk = top;
top = top->p;
delete stk;
return top->p;
}
//функція empty( const Stk top) перевіряє, чи є стек порожнім, повертає
// константу false, якщо це так
boolean empty(const Stk top)
{
return (boolean)(top == NULL);
}
void main()
{
Stk top;
char str[] = "fghg hfgt dtdt dtyd dtyf";
int i = 0;
cout << str;
top = reset();
while (str[i])
top = push(str[i++], top);
while (!empty(top))
top = pop(top);
getch();
}
Добавлено через 1 минуту
Цитата Сообщение от mss307 Посмотреть сообщение
enum boolean(true, false);
логичней сделать
C++
1
enum boolean{false, true};
0
zss
Модератор
Эксперт С++
6475 / 6038 / 1980
Регистрация: 18.12.2011
Сообщений: 15,636
Завершенные тесты: 1
18.11.2014, 14:56 #3
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
#include <iostream>
#include <process.h>
#include <conio.h>
using namespace std;
//визначення перелічуваного типу користувача boolean
//enum boolean(true, false);
//визначення шаблону елемента списку за допомогою типу struct
struct stack{
    char s;
    stack* p;
};
//оператор typedef дозволяє створити тип користувача Stk, який є
//аналогом стандартного типу stack*
typedef stack* Stk;
Stk stk;
//функція reset() повертає порожній покажчик (адресу) вершини стеку,
//тобто відбувається “скидання” стеку
Stk reset()
{
    return NULL;
}
//функція push(char c, Stk top) заносить символ с, що введено, на вершину стеку, утворюючи новий елемент списку типу stack и
//повертає його адресу як адресу першого елемента в списку
Stk push(char c, Stk top)
{
    stk = new stack;
    if (stk == NULL){
        cout << "\n Помилка під час розподілу пам’яті";
        exit(1);
    }
    stk->s = c;
    if (top != NULL) stk->p = top;
    return stk;
}
/*функція pop( Stk top) виштовхує елемент вершини, видає символ ,
що зберігається в вершині, на екран, замінює адресу попередньої
вершини адресою вершини, що йде за нею, а місце, що було розподілено
під попередню вершину, звільняється (повертається до “купи” вільної
пам’яті)*/
Stk pop(Stk top)
{
    cout << top->s;
    stk = top;
    top = top->p;
    delete stk;
    return top->p;
};
//функція empty( const Stk top) перевіряє, чи є стек порожнім, повертає
// константу false, якщо це так
bool empty(const Stk top)
{
    return (top == NULL);
}
void main()
{
    Stk top;
    char str[] = "fghg hfgt dtdt dtyd dtyf";
    int i = 0;
    cout << str;
    top = reset();
    while (str[i])
        top = push(str[i++], top);
    while (!empty(top))
        top = pop(top);
    getch();
}
0
mss307
118 / 118 / 25
Регистрация: 14.12.2013
Сообщений: 352
18.11.2014, 14:58 #4
zss,
Дана18, прости, тебе не знаком тип bool просто?
0
18.11.2014, 14:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2014, 14:58
Привет! Вот еще темы с ответами:

Удаление элементов из списка - C++
struct List { int data; List *next; }; typedef List* ListPtr; void InsertHead(ListPtr &amp; h, int a); void showList(ListPtr...

Удаление элементов из списка - C++
помогите пожалуйста)))написать процедуру , которая удаляет: а)из списка L за каждым вхождением элемента Е один элемент, если такой есть...

Удаление элементов из списка - C++
Здравствуйте. Есть такая программа, не могу сделать удаление элемента из списка, помогите пожалуйста. #include &lt;iostream&gt; #include...

Удаление элементов из списка - C++
Доброго всем времени суток! в универе начали проходить динамические структуры, дошли до списков. Дали задание составить динамический...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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