Спочатку ми розглянемо що таке стек і що таке черга окремо, а потім ми обговоримо відмінності між стеком і чергою.
Що таке стек?
Структура даних. У випадку масиву можливий довільний доступ, тобто доступ до будь-якого елемента масиву можливий у будь-який час, тоді як у стеку можливий лише послідовний доступ. Це контейнер, який відповідає правилу вставки та видалення. Це слідує принципу LIFO (останній прийшов, перший вийшов) у якому вставка та видалення відбуваються з одного боку, відомого як a зверху . У стек ми можемо вставляти елементи подібного типу даних, тобто елементи різних типів даних не можна вставляти в один стек. Дві операції виконуються в LIFO, тобто штовхати і поп операція.
Нижче наведено операції, які можна виконувати зі стеком:
У стеку, зверху це покажчик, який використовується для відстеження останнього вставленого елемента. Щоб реалізувати стек, ми повинні знати розмір стека. Нам потрібно виділити пам'ять, щоб отримати розмір стека. Існує два способи реалізації стека:
Що таке черга?
А
Подібності між стеком і чергою.
Є дві подібності між стеком і чергою:
І стек, і черга є лінійною структурою даних, що означає, що елементи зберігаються послідовно та доступ до них здійснюється за один запуск.
І стек, і черга є гнучкими за розміром, що означає, що вони можуть збільшуватися та звужуватися відповідно до вимог під час виконання.
Відмінності між стеком і чергою
Нижче наведені відмінності між стеком і чергою:
Основа для порівняння | Стек | Черга |
---|---|---|
Принцип | Він дотримується принципу LIFO (Last In-First Out), який передбачає, що елемент, який вставлено останнім, буде першим видаленим. | Він відповідає принципу FIFO (First In - First Out), який передбачає, що елемент, який додається першим, буде першим елементом, який буде видалено зі списку. |
Структура | Він має лише один кінець, з якого відбувається як вставка, так і видалення, і цей кінець відомий як вершина. | Він має два кінці, тобто передній і задній. Передня частина використовується для видалення, а задня — для вставки. |
Кількість використаних покажчиків | Він містить лише один вказівник, відомий як верхній вказівник. Верхній покажчик містить адресу останнього вставленого або самого верхнього елемента стека. | Він містить два покажчики, передній і задній. Передній покажчик містить адресу першого елемента, тоді як задній покажчик містить адресу останнього елемента в черзі. |
Проведені операції | Він виконує дві операції: виштовхування та виштовхування. Операція push вставляє елемент у список, тоді як операція pop видаляє елемент зі списку. | Він виконує в основному дві операції: постановки в чергу та вилучення з черги. Операція enqueue виконує вставку елементів у чергу, тоді як операція dequeue виконує видалення елементів із черги. |
Огляд порожнього стану | Якщо top==-1, це означає, що стек порожній. | Якщо front== -1 або front = rear+1, це означає, що черга порожня. |
Огляд повного стану | Якщо top== max-1, ця умова означає, що стек заповнений. | Якщо rear==max-1, ця умова означає, що стек заповнений. |
Варіанти | Він не має типів. | Він буває трьох типів, як-от пріоритетна черга, циклічна черга та подвійна черга. |
Реалізація | Він має простішу реалізацію. | Він має порівняно складнішу реалізацію, ніж стек. |
Візуалізація | Стек візуалізується як вертикальна колекція. | Черга візуалізується як горизонтальна колекція. |