Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.04.2015
Сообщений: 1
1

Работа со стеком

19.04.2015, 16:45. Показов 461. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал программу которая создаёт стек с числами в диапазоне от -50 до +50, ищет минимальный и максимальный элементы, а также их позиции в стеке.
Вот она:
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
#include <iostream.h>
 
struct tstk
{
    int inf;
    tstk *a;
} sp;
 
tstk *add(tstk *,int);
void show(tstk *);
tstk *del(tstk *);
 
int main()
{
    tstk *sp=NULL;
    int n,k,low,high,cnt=0;
    cout<<"Vvedite n:"; cin>>n;
    cout<<"Vvedite low:"; cin>>low;
    cout<<"Vvedite high:"; cin>>high;
    for(int i=0;i<n;i++)
    {
        cin>>k;
        if(k>=low && k<=high) {sp=add(sp,k);cnt++;}
    }
    show(sp);
    cout<<"kolvo elementov v steke = "<<cnt<<endl;
    tstk *t=sp;
    int min,max;
    min=max=sp->inf;
    while(t=t->a)
    {
        if(t->inf>max) max=t->inf;
        if(t->inf<min) min=t->inf;
    }
    cout<<"min="<<min<<endl;
    cout<<"max="<<max<<endl;
    t=sp;
    int indexmax=0,indexmin=0;
    do
    {
        indexmax++;
        if(t->inf==max) break;
    } while(t=t->a);
    t=sp;
    do
    {
        indexmin++;
        if(t->inf==min) break;
    } while(t=t->a);
 
    del(sp);
    return 0;
}
 
tstk *add(tstk *sp,int inf)
{
    tstk *spt=new tstk;
    spt->inf=inf;
    spt->a=sp;
    return spt;
}
 
void show(tstk *sp)
{
    while(sp)
    {
        cout<<sp->inf<<" ";
        sp=sp->a;
    }
    cout<<endl;
}
 
tstk *del(tstk *sp)
{
    tstk *spt; int inf;
    while(sp!=NULL)
    {
        spt=sp;
        inf=sp->inf;
        sp=sp->a;
        delete spt;
    }
    return NULL;
}

Но нужно сделать ещё вот это: если минимальный элемент стоит раньше максимального, то в стеке оставить все элементы, стоящие до минимального(остальные удалить из стека); а если максимальный стоит раньше минимального, то в стеке оставить все элементы, стоящие после минимального(остальные удалить из стека).
Как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2015, 16:45
Ответы с готовыми решениями:

Работа со стеком
Задача: Написать программу которая создает стек целых чисел считываемых из файла и удаляет из него...

Работа со стеком
Помогите исправить ошибки! Пусть символ # определен в текстовом редакторе как стирающий символ...

Работа со стеком
Привет всем. Помогите пожалуйста написать прогу. Постороить класс для работы со стеком.Элементы...

Работа со стеком
Создать программу, реализовав работу со структурой данных - стеком. В программе реализовать...

0
19.04.2015, 16:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2015, 16:45
Помогаю со студенческими работами здесь

Работа со стеком!
Необходимо записать заполнение стека с клавиатуры. Добавлено через 44 секунды #include...

Работа со стеком
Ребят, помогите пожалуйста с заданиями: Задание 1 Реализовать стек списком. Все стандартные...

Работа со стеком.
Интересует вопрос: для использовония функций pop() и push() нужно ли подключать заголовочный файл...

Работа со стеком
Напишите программу, которая создает стек из 30 элементов, состоящий из чисел Фибоначчи (первый и...

Работа со СТЕКОМ!!!!!!:)
Создать класс для работы со стеком. Элемент стека – символ. --- Сформировать два стека,содержащие...

Работа со стеком
Люди...Помогите...Напишите пожалуйста библиотеку для работы со стеком и поясните как и что нужно...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru