Редови су обично фрустрирајући у стварном животу, али у компјутерском програму могу да реше многе проблеме. Сазнајте шта можете да урадите са редом и како.
Ред је разноврсна структура података коју можете користити у различитим поставкама. Од алгоритама за заказивање ЦПУ-а до веб апликација, налази се свуда.
Ако тежите да будете програмер Питхон-а, од виталног је значаја да будете у току са овом једноставном, али свеприсутном структуром података. Хајде да научимо шта је структура података реда и како је имплементирати у Питхон-у.
Шта је структура података реда?
Ред је линеарна структура података, која прати принцип „Први-први-излази“ (ФИФО). То значи да ћете, када преузмете елемент из реда, добити онај који сте додали пре осталих.
Ево основних операција које можете да извршите у реду чекања:
- У реду: Додајте елементе у ред.
- Декуеуе: Уклоните елементе из реда.
- Штампање: Одштампајте елементе у реду.
- Фронт: Набавите елемент на почетку реда.
- Позади: Узмите елемент у задњем делу реда.
Структуру података реда у Питхон-у можете имплементирати на два начина: користећи или контејнер листе или двострани ред из модула колекција. За овај програм ћете користити листу.
Како имплементирати структуру података реда у Питхон-у
Применићете ред користећи контејнер листе у Питхон-у. Почните тако што ћете прогласити празну листу са именом куеуе.
ред = []
Сада морате да прихватите кориснички унос и извршите операцију коју је корисник унео. Прво одштампајте линију која тражи од корисника да унесе команду. Затим сачекајте кориснички унос и сачувајте га у команда променљива.
Користећи Питхон иф изјаве, изврши операцију која одговара команди коју корисник унесе. Ако унесу непрепознату команду, затворите програм. Ставите ове операције унутар бесконачног вхиле петља како би се осигурало да програм настави да ради осим ако не одустане.
докИстина:
команда = улаз ("Шта желиш да радиш? ")ако команда == "у реду":
# код
елиф команда == "из реду":
# код
друго:
пауза
ред за штампање)
У реду
Сада када сте се позабавили главним контролним током програма, можете дефинисати блок кода за сваку операцију. Прво напишите код за ред. Стављање у ред значи уметање елемента на крај реда. То можете учинити помоћу додати() метод:
акокоманда == "у реду":
енкуеуе = инт(улазни("Унесите елемент у ред у реду: "))
Декуеуе
Сада напишите код за уклањање елемента из реда. То можете учинити користећи поп метод са 0 као индексом. Зашто? Као што сте раније научили, ред прати ФИФО редослед, тако да би први елемент који ставите у ред требало да буде први елемент који избаците из реда.
ако команда == "из реду":
куеуе.поп(0)
Фронт
Наставите даље, напишите код за штампање елемента на почетку реда. Једноставно одштампајте 0. индекс реда.
ако команда == "предњи":
ред за штампање[0])
Задњи
Слично као код за предњу операцију, да бисте извршили операцију позади, одштампајте елемент на последњем индексу. Да бисте то урадили, прво користите функцију лен() у реду, а затим одузмите 1 од ње да бисте пронашли последњи индекс.
ако команда == "задњи":
штампа (ред[лен (ред) - 1])
Принт
На крају, напишите код за команду за штампање. Једноставно одштампајте листу користећи Питхон стандард принт() функција.
ако команда == "штампати":
ред за штампање)
Ако се текст који корисник унесе не подудара са подржаном командом, иступите из вхиле петље користећи наредбу бреак. Коначни код би требао изгледати овако:
ред = []
докИстина:
команда = улаз („Шта желиш да урадиш?\н“)ако команда == "у реду":
енкуеуе = инт (инпут("Унесите елемент у ред у реду: "))
куеуе.аппенд (у реду)
елиф команда == "из реду":
куеуе.поп(0)
елиф команда == "штампати":
ред за штампање)
елиф команда == "предњи":
ред за штампање[0])
елиф команда == "задњи":
штампа (ред [лен (ред)-1])
друго:
пауза
ред за штампање)
Покрените програм да испробате различите операције у реду чекања. Користите команду за штампање да видите како утичу на ваш ред чекања. Сада сте креирали сопствену једноставну имплементацију реда у Питхон-у.
Ред је само једна од многих корисних структура података
Концепт структуре података је од виталног значаја који сваки студент информатике мора да савлада. Велике су шансе да сте већ научили или радили са неким основним структурама података као што су низови или листе.
Анкетари такође имају тенденцију да постављају питања у вези са структурама података, тако да ако желите да добијете високо плаћен посао програмирања, мораћете да унапредите своје знање о структурама података.