Стеки

  • Автор темы cout
  • Дата начала
C

cout

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

Само создание стека уже есть осталось сделать доп.задание.помогите плиз.Может и идеей или теорией.чем отличается поиск элементов массиве от поиска элементов в стеке в плане синтаксиса?

Вот мой код

Код:
#include <cstdlib>
#include <iostream>
using namespace std;
struct tstk 
{ int inf; 
tstk *a; }; 
tstk *DelStackAll(tstk *sp) 
{ tstk *spt; int inf; 
while(sp != NULL) { 
spt = sp; 
inf= sp->inf; 
cout << inf << endl; 
sp = sp->a; 
delete spt; } 
return NULL; } 

tstk *AddStack(tstk *sp, int inf) 
{ tstk *spt=new tstk; 
spt->inf = inf; 
spt->a = sp; 
return spt; } 

tstk *ReadStackD(tstk *sp, int &inf) 
{ if (sp == NULL) return NULL; 
tstk *spt = sp; 
inf= sp->inf; 
sp = sp->a; 
delete spt; 
return sp; } 

int main()
{
tstk*sp=NULL;

int i,j;
for(i=-50;i<50;i++)
{sp=AddStack(sp,i);
sp=DelStackAll(sp);}

cout<<i<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}
 
R

rrrFer

#2
1. min = первому элементу стека(H - голова стека), number = numberMin = 0
2. вызываешь функцию getNum( H, min, number, numberMin )

0. функция getNum
1. разделяешь на голову(H) и хвост(T)(голова - первый элемент стека, хвост - то что по указателю на следующий после головы элемент)
2. H < min переход на 3, иначе на 4
3. numberMin = number, min = H
4. getNum( T, min, number + 1, numberMin )

Тут намерено пропущен пункт между нулевым и первым - догадайся сам чего не хватает.