Стеки

Тема в разделе "C/C++/C#", создана пользователем cout, 27 ноя 2011.

  1. cout

    cout Гость

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

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

    Вот мой код

    Код (Text):
    #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;
    }
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    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 )

    Тут намерено пропущен пункт между нулевым и первым - догадайся сам чего не хватает.
     
Загрузка...
Похожие Темы - Стеки
  1. lena-tus
    Ответов:
    0
    Просмотров:
    1.070

Поделиться этой страницей