Разлика између стака и реда

Аутор: Laura McKinney
Датум Стварања: 2 Април 2021
Ажурирати Датум: 13 Може 2024
Anonim
СВЕЧИ своими руками |DIY| Свечи из ЦЕМЕНТА
Видео: СВЕЧИ своими руками |DIY| Свечи из ЦЕМЕНТА

Садржај


Стацк и Куеуе су непримитивне структуре података. Главне разлике између стацк-а и реда су у томе што скуп користи ЛИФО (ласт ин фирст оут) методу за приступ и додавање елемената података, док Куеуе користи ФИФО (Фирст ин фирст оут) методу за приступ и додавање елемената података.

Стацк има само један крај отворен за гурање и искакање елемената података с друге стране. Ред чекања је отворен и за затварање и уклањање елемената података.

Стацк и ред су структуре података које се користе за чување елемената података и заправо се заснивају на стварном еквиваленту света. На пример, сноп је гомила ЦД-а одакле можете да извадите и ставите ЦД преко врха снопа ЦД-ова. Слично томе, ред је ред за улазнице за Позориште, где ће особа која стоји на првом месту, тј. Прво бити постављена предња честица, а нова особа која је стигла појавит ће се на задњем дијелу реда (стражњи крај реда).

  1. Упоредни графикон
  2. Дефиниција
  3. Кључне разлике
  4. Имплементација
  5. Операције
  6. Апликације
  7. Закључак

Упоредни графикон

Основе за поређењеСтацк Ред чекања
Принцип радаЛИФО (Последњи у првом изласку)ФИФО (прво у првом изласку)
СтруктураИсти крај користи се за уметање и брисање елемената.Један крај користи се за уметање, тј. Задњи и други крај за брисање елемената, тј. Предњи.
Број употријебљених показивачаЈеданДва (у случају једноставног реда)
Извршене операцијеПусх анд Поп Енкуеуе и декуеуе
Испитивање празног стањаВрх == -1Фронт == -1 || Предња страна == Задња + 1
Испитивање потпуног стања
Врх == Макс. - 1Задње == Мак - 1
ВаријантеНема варијанте.Има варијанте попут кружног реда, реда приоритета, ред с двоструким завршетком.
ИмплементацијаЈедноставнијеРелативно сложен


Дефиниција Стака

Стацк је непримитивна линеарна структура података. То је наручена листа у коју се додаје нова ставка, а постојећи елемент се брише са само једног краја, а зове се као врх снопа (ТОС). Пошто се свако брисање и уметање у снопу врши са врха снопа, последњи додани елемент биће први који је уклоњен из снопа. То је разлог због којег се хрпа назива врста Ласт-ин-Фирст-оут ​​(ЛИФО).

Имајте на уму да је елемент којем се често приступа у низу највиши елемент, док је задњи расположиви елемент у дну снопа.

Пример

Неки од вас могу јести кекс (или Поппинс). Ако претпоставите, само је једна страна поклопца извађена, а кекси се ваде један по један. То је оно што се назива искакање, и слично, ако желите да сачувате неке кексе неко вријеме касније, вратит ћете их у паковање кроз исти истргани крај назива се гурање.


Дефиниција реда

Ред честица је линеарна структура података која долази у категорију непримитивног типа. То је колекција сличних врста елемената. Додавање нових елемената одвија се на једном крају који се назива стражњи крај. Слично томе, брисање постојећих елемената догађа се на другом крају који се назива Фронт-енд, и логично је врста Фирст ин фирст оут (ФИФО).

Пример

У нашем свакодневном животу наилазимо на многе ситуације у којима чекамо жељену услугу, тамо морамо да уђемо у ред чекања да бисмо добили сервис. Овај ред чекања може се замислити као ред чекања.

  1. Стацк прати ЛИФО механизам, с друге стране Куеуе прати ФИФО механизам за додавање и уклањање елемената.
  2. У снопу се исти крај користи за уметање и брисање елемената. Супротно томе, у реду за уметање и брисање елемената користе се два различита краја.
  3. Како Стацк има само један отворени крај, то је разлог за коришћење само једног показивача за упућивање на врх хрпе. Али ред користи два показивача за упућивање предњег и задњег краја реда.
  4. Стацк изводи две операције познате као пусх и поп док је у Куеуеу познат као енкуеуе и декуеуе.
  5. Имплементација снопа је лакша, док је имплементација реда на чело захтјевна.
  6. Ред чекања има варијанте попут кружног реда, реда приоритета, ред с двоструким завршетком итд. Супротно томе, стацк нема варијанте.

Имплементација стека

Стацк се може примијенити на два начина:

  1. Статичка примена користи низове за креирање скупа. Статичка имплементација је, међутим, техника без напора, али није флексибилан начин креирања, јер декларација о величини снопа мора бити урађена током дизајнирања програма, након чега величина не може да се мења. Поред тога, статичка примена није баш ефикасна у погледу употребе меморије. Будући да се низ (за имплементацију скупа) декларира прије почетка операције (у вријеме дизајнирања програма). Ако је број елемената који се сортирају у снопу врло мањи, нестаје статички додељена меморија. С друге стране, ако у хрпици може бити смештено више броја елемената, не можемо бити у могућности да променимо величину матрице да бисмо повећали њен капацитет, тако да може да прими нове елементе.
  2. Динамична примена се такођер назива повезано представљање листа и користи показиваче за имплементацију врсте структуре података.

Имплементација реда

Ред чекања може се имплементирати на два начина:

  1. Статичка примена: Ако се ред реализира помоћу низова, прије се мора осигурати тачан број елемената које желимо похранити у ред, јер величина поља мора бити декларирана у вријеме дизајна или прије почетка обраде. У овом случају, почетак матрице постат ће предњи дио реда, а посљедња локација матрице ће дјеловати као задња страна реда. Сљедећи однос даје да читави елементи постоје у реду чекања када се имплементирају помоћу поља:
    предњи - задњи + 1
    Ако је "страга <предњи", тада у реду чекања неће бити елемената или ће ред бити увек празан.
  2. Динамична примена: Имплементација реда помоћу показивача, главни недостатак је што чвор у повезаној репрезентацији троши више меморијског простора од одговарајућег елемента у репрезентацији низа. Будући да у сваком чвору постоје најмање два поља, једно за поље података, а друго за смештање адресе следећег чвора, док је у повезаном представљању само поље података. Заслуга за употребу повезаног приказа постаје очигледна када је потребно уметање или брисање елемента усред групе других елемената.

Оператионс на Стацку

Основне операције којима се може управљати на снопу су следеће:

  1. ПУСХ: када се нови елемент дода у врх снопа познат је под називом ПУСХ операција. Гурање елемента у низ се позива на додавање елемента јер ће се нови елемент уметнути на врх. Након сваког притиска, врх се повећава за један. Ако је низ пун и не може се додати нови елемент, то се назива СТАЦК-ФУЛЛ цондитион или СТАЦК ОВЕРФЛОВ. РАД ПУСХ - функција у Ц:
    Разматрање снопа је декларирано као
    инт стацк, топ = -1;
    воид пусх ()
    {
    инт итем;
    ако (врх <4)
    {
    ф ("Унесите број");
    скенирање ("% д", & ставка);
    топ = врх + 1;
    стацк = ставка;
    }
    друго
    {
    ф ("Стацк је пун");
    }
    }
  2. ПОП: Када се елемент избрише с врха снопа, познат је под називом ПОП операција. Количина се смањује за један, након сваке поп операције. Ако на снопу не остане ниједан елемент, а поп је изведен, то ће резултирати СТАЦК УНДЕРФЛОВ стањем, што значи да је ваш сталак празан. РАД ПОП - функције у Ц:
    Разматрање снопа је декларирано као
    инт стацк, топ = -1;
    воид поп ()
    {
    инт итем;
    ако (врх> = 4)
    {
    итем = стацк;
    топ = врх - 1;
    ф ("Број обрисаних је =% д", ставка);
    }
    друго
    {
    ф ("Стацк је празан");
    }
    }

Операције на реду

Основне операције које се могу извести на реду су:

  1. Енкуеуе: Да бисте уметнули елемент у ред.Услуживање оперативне функције у Ц:
    Ред чекања је проглашен као
    инт ред, предњи = -1 и задњи = -1;
    неважећи додај ()
    {
    инт итем;
    ако (задња страна <4)
    {
    ф ("Унесите број");
    скенирање ("% д", & ставка);
    ако (предњи == -1)
    {
    предња страна = 0;
    назад = 0;
    }
    друго
    {
    назад = назад + 1;
    }
    ред = ставка;
    }
    друго
    {
    ф ("Ред је пун");
    }
    }
  2. Декуеуе: Да бисте избрисали елемент из чекања.Услуживање оперативне функције у Ц:
    Ред чекања је проглашен као
    инт ред, предњи = -1 и задњи = -1;
    воид делете ()
    {
    инт итем;
    ако (предњи! = -1)
    {
    итем = ред;
    ако (предњи == задњи)
    {
    предњи = -1;
    назад = -1;
    }
    друго
    {
    предња страна = предња страна + 1;
    ф ("Број обрисаних је =% д", ставка);
    }
    }
    друго
    {
    ф ("Ред је празан");
    }
    }

Примене Стака

  • Разматрање у преводиоцу.
  • Јава виртуелна машина.
  • Откажите у програму за обраду текста.
  • Дугме за повратак у веб прегледачу.
  • ПостСцрипт језик за ерс.
  • Имплементација позива функције у компајлеру.

Апликације реда

  • Буфери података
  • Асинхрони пренос података (ИО датотеке, цеви, утичнице).
  • Додјељивање захтјева на заједничком ресурсу (ер, процесор).
  • Анализа саобраћаја
  • Одредите број благајника у супермаркету.

Закључак

Стацк и ред су линеарне структуре података на различите начине се разликују попут радног механизма, структуре, имплементације, варијанте, али обоје се користе за складиштење елемената у листи и извођење операција на листи попут додавања и брисања елемената. Иако постоје ограничења једноставног реда који се надокнађује помоћу других врста чекања.