.
Резултати от 1 до 25 от общо 186

Threaded View

  1. #11
    Мега фен Аватара на Chacho
    Регистриран на
    Nov 2006
    Мнения
    15 573
    Можем да имплементираме елементите на динамичния стек така:


    struct StackElement
    {
    int m_data;
    StackElement* m_next;
    };


    Както виждаш, второто поле от структурата сочи отново към елемент от тая структура и това прави динамичната връзка. Така, в даден момент от програмата можеш да си създадеш елемент или да вземеш някой готов и да си го закачиш, като просто насочиш този указател към него.


    За да направиш самия стек, не само елементът му, ще трябва да създадеш два елемента - top и bottom от типа StackElement. Top ще е върхът на стека, а bottom - дъното и първоначално ще съвпадат.

    Добавянето на елемент ще става по следният начин. Създаваш нов StackElement, насочваш top.m_next към него и след това върхът става новодобавеният елемент (top=*top.m_next).

    Премахването на елемент също трябва да премахва елемент от върха.

    Методът на пряката селекция можеш да го намериш в google, той не е кой знае кво, просто трябва да го напишеш на стековски език (да видиш как да го направиш за твоята имплементация на стека).

    Четенето и писането във файл също можеш с google да си го изровиш, не е нещо особено.

    Ако ще подхождаш обектно-ориентирано, ще имплементираш клас стек, който да държи полета top и bottom, да реализира голямата четворка и да направиш методите от условието (ReadFromFile, Sort, WriteToFile, DisplayElementByIdx). Има много англоезични и достатъчно български книги на темата, можеш от ресурсите на ФМИ да си намериш лекции по СДП и да видиш как е направена обектно-ориентирано структурата.

    Менюто надали изисква разяснения - един цикъл с условие за прекратяване на програмата и на всяка стъпка се чете избор на потребителя, след което се извършва желаната операция.


    ПС: Както винаги, ако имаш въпроси, питай. Тоя път съм нахвърлял съвсем бегло нещата, май все така се случва като ти помагам, ще ме прощаваш. ^^
    Последно редактирано от Chacho : 09-18-2013 на 14:59
    Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.

Правила за публикуване

  • Вие не можете да публикувате теми
  • Вие не можете да отговаряте в теми
  • Вие не можете да прикачвате файлове
  • Вие не можете да редактирате мненията си