stacks queues stl
Научете прилагането на стекове и опашки в STL с примери.
Стековете и опашките са два контейнера в STL, които имат много основен характер. Те са най-простите контейнери, които имат широко приложение в софтуерното програмиране.
В този урок ще видим подробно изпълнение на двата контейнера в STL. Също така ще разгледаме различните операции, поддържани от стека и опашката с примери.
=> Внимавайте тук за простият сериал за обучение на C ++.
Какво ще научите:
Стекове
Контейнерът за стека в STL е тип адаптери за контейнери. Използва се за репликиране на структура на стек данни в C ++. Контейнерът за стека е набор от елементи, в които елементите се вмъкват в единия край и също се изтриват в същия край.
Тази обща точка на добавяне и изтриване е известна като „Върхът на стека“.
Изобразителното представяне на стека е показано по-долу.
Както е показано в горното представяне, стекът е контейнер, в който се добавят и изтриват елементи от същия край, наречен Top of the stack.
Тъй като добавянето и изтриването се случват в един и същ край, можем да кажем, че контейнерът на стека е тип работа LIFO (последен вход, първи изход). Това означава, че добавеният първи елемент ще бъде последният, който ще бъде изтрит.
За да приложим контейнер за стека, трябва да включим заглавката в нашата програма.
#include
Общият синтаксис на декларацията за стеков контейнер е:
stack stackName;
Операции на стека
След това нека обсъдим различните операции, които подреждат контейнера в STL.
- натиснете : операцията push се използва за вмъкване на елемент в стека. Тази операция винаги добавя елементи в горната част на стека.
Помислете за празен стек mystack от тип integer .
След това нека добавим елемент 1 към стека.
След това добавяме елемент 3 към стека.
Според представянето, в резултат на операция с натискане, елемент се добавя в горната част на стека. След всяка операция с натискане размерът на стека се увеличава с 1.
- поп : операцията pop се използва за премахване на елемент от стека. Премахнатият елемент е този, към който е посочен горната част на стека. В резултат на операцията за изскачане размерът на стека се намалява с 1.
Нека да видим как изглежда поп операцията:
Помислете за стека mystack, както по-горе, в който вече сме натиснали 2 елемента.
Сега нека извикаме функцията pop (). Когато това повикване бъде изпълнено, елементът в горната част на стека се премахва и ‘Top’ сочи към следващия елемент, както е показано по-долу.
Ако отново извикаме pop (), тогава следващият елемент (в случая 1) ще бъде премахнат, като по този начин ще се получи празен стек.
въпроси и отговори за интервю за тестване на Salesforce pdf
- връх : Връща най-горния елемент на стека.
- празен : Проверява дали стекът е празен или не.
- размер: Връща размера на стека, т.е. броя на елементите в стека.
По-долу е даден пример за изпълнение на стека за по-добро разбиране на операциите.
#include #include using namespace std; void printStack(stack stk) { while (!stk.empty()) { cout << ' ' << stk.top(); stk.pop(); } cout << '
'; } int main () { stack oddstk; oddstk.push(1); oddstk.push(3); oddstk.push(5); oddstk.push(7); oddstk.push(9); cout << 'The stack is : '; printStack(oddstk); cout << '
Size of stack: ' << oddstk.size(); cout << '
Top of stack: ' << oddstk.top(); cout << '
oddstk.pop() : '; oddstk.pop(); printStack(oddstk); cout<<'
Another pop(): '; oddstk.pop(); printStack(oddstk); return 0; }
Горният пример ясно показва операцията за натискане, която генерира стек. Той също така показва стека след две последователни поп операции.
По този начин видяхме стека и неговите операции в STL. Освен това в този урок ще видим подробното изпълнение на още един прост STL контейнер, който е „Опашка“.
Опашка
Опашката е още един контейнер в STL, който също е много прост и полезен. Контейнерът за опашка е реплика на структурата на данните за опашката в C ++. За разлика от стека, в контейнера за опашка има два края, т.е.пред и отзад.
Елементите се добавят към опашката отзад, докато се изтриват от предната страна на опашката. По принцип опашката използва FIFO (First in, First Out) тип подредба.
За да приложим контейнер на опашка в програма, трябва да включим заглавие в кода.
#include
Общият синтаксис за деклариране на опашката е:
опашка име_на опашка;
Декларираме контейнера на опашката, както следва:
Queue myqueue;
Операции на опашката
Сега ще видим различните операции, поддържани от опашката.
- натиснете: Функцията ‘push’ добавя елемента в края на опашката, т.е. в задната част на опашката.
- поп: Функцията ‘pop’ премахва първия елемент от опашката, т.е. елемента в предната част на опашката.
Нека разберем функциите за натискане и изскачане на опашката.
Помислете за празна опашка, декларирана над myqueue. Сега натискаме четно число 2 в опашката с операцията
myqueue.push (2);
Сега опашката ще изглежда така:
След това добавяме „4“ към опашката с извикване „myqueue.push (4)“.
Сега опашката изглежда както е показано по-долу:
Както се вижда по-горе, елементите се избутват в опашката от задния край или отзад.
Сега нека пуснем операция на опашката.
myqueue.pop ();
И така, както виждаме, когато се извиква pop (), елементът отпред на опашката се премахва. Това означава, че първият елемент, който е въведен в опашката, е първият елемент, който е извън опашката.
- отпред: Тази функция връща препратка към първия елемент на опашката.
- обратно: Назад връща препратка към последния елемент в опашката.
- празно: Проверява дали опашката е празна.
- размер: Връща размера на опашката, т.е. броя на елементите в опашката.
Дадено по-долу е примерна програма, която демонстрира операциите, използвани от опашката на опашката.
#include #include using namespace std; void printQueue(queue myqueue) { queue secqueue = myqueue; while (!secqueue.empty()) { cout << ' ' << secqueue.front(); secqueue.pop(); } cout << '
'; } int main() { queue myqueue; myqueue.push(2); myqueue.push(4); myqueue.push(6); myqueue.push(8); cout << 'The queue myqueue is : '; printQueue(myqueue); cout << '
myqueue.size() : ' << myqueue.size(); cout << '
myqueue.front() : ' << myqueue.front(); cout << '
myqueue.back() : ' << myqueue.back(); cout << '
myqueue.pop() : '; myqueue.pop(); printQueue(myqueue); return 0; }
Изход:
Опашката myqueue е: 2 4 6 8
myqueue.size (): 4
myqueue.front (): 2
myqueue.back (): 8
какво е тестване за здравословно състояние при тестване на софтуер
myqueue.pop (): 4 6 8
Както е показано по-горе, първо декларираме контейнер на опашка. След това с помощта на операцията за избутване добавяме първите четири четни числа към нея. След това изваждаме елемента от опашката и показваме променената опашка.
Заключение
С това стигнахме до края на този урок за стекове и опашки. Както вече споменахме, това са най-простите контейнери, които имаме в STL. Друг вариант на опашката на опашката е известен като „Приоритетна опашка“.
В нашия предстоящ урок ще обсъдим повече за приоритетната опашка в STL !!
=> Посетете тук, за да научите C ++ от нулата.