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

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

Войти
Регистрация
Восстановить пароль
 
Wedroid
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 27
#1

Определить, сколько элементов стека, начиная от вершины, находится до элемента с минимальным значением - C++

27.09.2013, 21:34. Просмотров 779. Ответов 1
Метки нет (Все метки)

Есть стек с числами от -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
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
 
using namespace std;
 struct Stack
 {
  int info;
  Stack *next;
 }*begin;
 
Stack* InStack(Stack*, int);
void View(Stack*);
void mima(Stack*);
 
 
int main()
{
 int i;
 for(i=1;i<=101;i++)
 {
 begin=InStack(begin, rand()%101-50);
 }
  View(begin);
  mima(begin);
  getchar();
}
 
 
Stack* InStack(Stack *p, int in){
Stack *t=new Stack;
t->info=in;
t->next=p;
return t;
}
 
 
 
void View(Stack *p)
{
 Stack *t=p;
 while(t!=NULL)
 {
     cout<<t->info<<"\n";
     t=t->next;
 }
}
 
void mima(Stack *p)
{
 int min=0,j;
 cout<<endl;
 while(p!=NULL)
 {
    
    if(p->info<min)
    { min=p->info;}
    p=p->next;
    
 }
 cout<<"Min="<<min<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2013, 21:34     Определить, сколько элементов стека, начиная от вершины, находится до элемента с минимальным значением
Посмотрите здесь:
C++ Определить, сколько элементов стека, начиная от вершины, находится до элемента с минимальным значением
C++ Стэк. Нужно определить, сколько элементов стэка, начиная с вершины, находятся до элемента с максимальным значениям
Определить, сколько раз в список входит элемент со значением последнего элемента C++
Сформировать стек по файлу чисел. Удалить из стека узлы с минимальным значением информационного поля C++
C++ В упорядоченном по убыванию массиве определить, сколько имеется элементов со значением Р
C++ В упорядоченном по убыванию массиве определить сколько имеется элементов со значением Р
C++ Определить, сколько элементов стека имеют значения меньше среднего значения от всех элементов и удалить их
Все отрицательные числа в массиве заменить минимальным значением элемента C++
Определить номера минимального элемента массива и элемента, являющегося минимальным без учета этого элемента. C++
Определить сколько положительных элементов находится между mах и min значениями матрицы C++
Структура стек (: добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека...) C++
Посчитать кол-во элементов между максимальным и минимальным значением элементов двумерного массива( подразумевается, что эти значения уже найдены) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Forveg
7 / 7 / 1
Регистрация: 14.08.2013
Сообщений: 20
28.09.2013, 14:59     Определить, сколько элементов стека, начиная от вершины, находится до элемента с минимальным значением #2
шаг 1:
C++
1
2
3
4
5
6
7
Stack* begin;
//...
Stack* t = new Stack;
t->info=some_value;
t->next=begin;
begin=t;
// begin->next==begin
шаг 2:
C++
1
2
3
4
5
6
7
Stack* t = new Stack;
t->info=some_value2;
t->next=begin;
begin=t;
// теперь begin указывает на новый участок кучи,
// а участок, выделенный на шаге 1, не привязан ни к какому указателю.
// Правда, в этом участке есть указатель на begin, но он не доступен
Т.о. на шаге n получится n-1 утечек (неадресуемых 8-байтных участков в куче), а
begin будет указывать сам на себя. Попробуй так:
C++
1
2
3
4
5
6
7
8
9
10
11
begin=new Stack; 
begin->info=rand()%101-50;
begin->next=NULL; // это последний,нижний элемент стека
for(i=0;i<101;i++)
{
Stack* tmp = new Stack;     // берем из кучи 8 байт
tmp->info=rand()%101-50; // заполняем первые 4 (поле info)
tmp->next=begin;               // поле next указывает на begin (элемент ниже по стеку)
begin=tmp;                         // первым элементом стека (тем, что на вершине)
                                           // делаем только что созданный  
}
Добавлено через 16 минут
Цитата Сообщение от Wedroid Посмотреть сообщение
Есть стек с числами от -50 до 50
Цитата Сообщение от Wedroid Посмотреть сообщение
int min=0,j;
//...
if(p->info<min)
{ min=p->info;}
Числа от 1 до 50 в поиске минимального не участвуют. Присвой min 51.
Затем:
C++
1
2
3
4
5
6
7
int cnt=0; //кол-во элементов от вершины до минимального
Stack* p=begin;
while(p->info!=min)
 {
cnt++;        
p=p->next;   
 }
Yandex
Объявления
28.09.2013, 14:59     Определить, сколько элементов стека, начиная от вершины, находится до элемента с минимальным значением
Ответ Создать тему
Опции темы

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