Як реалізувати чергу за допомогою двох стеків

Автор: Laura McKinney
Дата Створення: 4 Квітень 2021
Дата Оновлення: 19 Листопад 2024
Anonim
Java Tech Talk: Telegram бот на java за 1 час
Відеоролик: Java Tech Talk: Telegram бот на java за 1 час

Зміст

Черга - це динамічна структура даних, з якої можна отримати доступ до даних у процесі "перший прийшов, перший вийшов". Стек - це динамічна структура даних, з якої ви можете отримати доступ до даних у процесі "останнього входу, першого виходу". Якщо ви реалізуєте стек, стане доступним лише останній введений елемент. Якщо ви хочете отримати доступ до даних, які є її основою (перший елемент, який ви поклали), то ви будете розглядати його як чергу. Для цього необхідно реалізувати другу купку.


Інструкції

Реалізація черги з використанням двох стеків проста (Ablestock.com/AbleStock.com/Getty Images)

    Два стеки дорівнюють рядку

  1. У текстовому редакторі напишіть код для реалізації стека відповідно до процедур і функцій, доступних на мові програмування, яку ви хочете використовувати. Зателефонуйте до стека Stack_Entry. Помістіть дані в Stack_Entry (багато мов програмування використовують команду "push" для додавання даних). Наприклад, запустіть команду "push" в Stack_Entry, щоб ввести дані в наступному порядку: "A", "B" і "C". "A" є першим, хто входить і знаходиться внизу стека. Якщо ви хочете отримати доступ до цього першого елемента, ви обробляєте дані як чергу.

  2. Напишіть код для реалізації другого стека відповідно до процедур і функцій, доступних на мові програмування, яку ви бажаєте використовувати. Назвемо його StackSafe (багато мови програмування використовують команду "pop" для видалення даних зі стека).


  3. Видаліть кожен елемент зі стека Stack_Insert і помістіть їх у стек сну. Загалом, ви видаляєте елемент Stack_Input і розміщуєте його в StackAid. Потім перевірте, чи є Stack_Input порожнім. Якщо він не порожній, видаліть наступний елемент зі входу Stack_In і помістіть його в стек сну. Повторіть, поки не буде порожній Stack_Input. У нашому прикладі ви вилучите "C" з Stack_Input і помістіть його в Stack_Aid. Переконайтеся, що InputPilot порожній. Видалити "B" з Stack_Input і встановити його на Stack_Aid. Переконайтеся, що InputPilot порожній. Видаліть "A" з Stack_Input і встановіть його на Stack_Aid. Переконайтеся, що InputPilot порожній.

  4. Коли стек Stack_Path порожній, елемент, який знаходився в базі Stack_Input ("A" у нашому прикладі), тепер знаходиться у верхній частині Stack_Aside. Видаліть елемент SleepSeat, і ви перетворили свій стек у чергу. Ваш перший елемент у стеку тепер є першим елементом, який буде вилучений (перший, перший, або FIFO у першому, першому).


Як

  • Більшість мов програмування надають функції для обробки даних у векторі, як якщо б вони були чергою або стеком. Тобто ви можете отримати доступ як до останньої, так і до першої позиції вектора, незалежно від того, з якого кінця ви вводите дані. Якщо ваші дані знаходяться у векторі, вам не потрібно турбуватися про доступ до них у вигляді черги або стека. Але якщо ваші дані перебувають у динамічній купі, і ви хочете розглядати її як чергу, то вам слід реалізувати другий стек.

Що вам потрібно

  • Текстовий редактор
  • Компілятор або інтерпретатор для деяких мов програмування

Бездротові мережі вже використовувались як замінники дротових з’єднань. Однак із вибухом Інтернету та портативних мережевих пристроїв бездротові з’єднання стали незамінними в домашньому та робочому се...

Автомобілі з дистанційним управлінням - веселе проведення часу, але вони мають свою проблему, включаючи передавачі, які іноді можуть не працювати належним чином. Існують логічні та безпечні способи пе...

Популярний На Сайті