ПредишенСледващото

Топчето се нарича метод за съхранение на данни, в която елементът се записва в паметта за данни, като последният винаги отстранен първи (LIFO дисциплината - «последно в - първа изходяща"). При отстраняване на елемента е изваждането му от купчината.

Помислете за един прост пример за използване на комина. Да предположим, че има низ състоящ се само от едно отваряне и затваряне скоби. Необходимо е да се определи дали това е правилният израз скоба (т.е. за всяка отваряща скоба трябва да намери затваряне). Zavedom масив и променлива да съхраните номера на последния значим елемент в масива (тоест, на върха на стека), който ще постави всички отварящи скоби (с увеличаване на горния номер 1) при преминаване на линията, както и по време на среща със закриването ще премахне съответния отвор (просто намаляване на броя на стека). Ако се окаже, че "дойде" затваряща скоба и стека е празен (т.е., най-горния номер е 0), изразът не е наред. Същото може да се каже, когато линията свърши и стека не е празна.

Ясно е, че за изпълнението на такъв масив от стека използва, не е достатъчно задължително да се съхранява в променлива редица отварящи скоби. В получаването на затваряща скоба на променлива 1 се изважда грешка възниква, ако стойността на променливата е станал отрицателен, или когато в края на низа не е равно на нула.

За тях по-сложна форма на комина може да се уреди с помощта на еднопосочен без пръстеновидно списък. За да се сложи точка в стека, трябва да го добавите в горната част на списъка, за да се отстранят от комина - да получат данните от първия елемент, а след това да я премахнете от списъка.

Всяко изпълнение на комина трябва да съдържа следните процедури и функции:

процедура InitStack - инициализиране на пакета;

процедура Push (г: tData) - да се сложи елемент в пакета;

процедура Поп (VAR г: tData) - извличане на елемент от стека;

функция NotEmpty: Булева - проверка на стека, за да празнотата;

Включете се различава от стека, така че последният влезе в нея елемент ще бъде извлечен миналата, а първите - първата ( «FIFO»). С списъци можете да го организира по следния начин: нека бъдем не само указател към "главата" на списъка, но също така и на "опашка"; се прибавя към "опашка", и екстракт -. от "главата"

Всяко изпълнение на опашката (не непременно с помощта на списъци) трябва "да е в състояние" да извърши следните стъпки:

процедура InitQueue - инициализиране на опашката;

процедура AddQueue (г: tData) - да се сложи точка на опашката;

процедура SubQueue (Var г: tData) - премахване на елемент от опашката;

функция NotEmpty: Булева - проверка на празнотата;

Свързани статии

Подкрепете проекта - споделете линка, благодаря!