Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Въпрос за FIFO и LIFO?

Featured Replies

Здравейте, от известно време започнах да се занимавам с програмиране(съвсем новак съм). Прочетох книгата на Наков започнах да чета и една литература на чужд език с практически примери и задачи. За съжаление не всички от задачите имат отговори и тук идва нуждата от помощ. Мисля от няколко дена два въпроса и бих бил много благодарен ако някой удари едно рамо за помощ. Ето ги и тях:

1) Is it possible to implement queues using stacks? Implement a queue (FIFO) datastructure using stacks (LIFO).

Ако правилно съм разбрал прочетеното то мен опашката се състои от стак 1 и стак 2, така че би трябвало да може да се приложат опашки  като си използват стакове или бъркам. За втората част от въпроса измислих това, но имам съмнение че съм далеч от истината

nsert(e):
   stack1.push(e)

take():
   if (stack2.empty()):
      while (stack1.empty() == false):
            stack2.push(stack1.pop())
   return stack2.pop() //assume stack2.pop() handles empty stack already

2) Да предположим, че ви е даден компютър с 1GB RAM. Дискът на този компютър притежава 10GB файл, съдържащ случайни числа. Предложете техника за сортиране на файлове без използване на диск или мрежа или виртуална памет. Изложете своя подход, предложете алгоритъм, и приложете алгоритъма. Каква е алгоритмичната сложността на алгоритъм? На този въпрос нямам никаква идея за отговор, най- малкото как ще сортираш файл без да ползваш диска.

Редактирано от mitko2 (преглед на промените)

Ако разбирам правилно искаш тази имплементация да попва като опашка? Направи два стека. В единият пушваш елементи. След това поверяваш вторият дали е празен. Ако не е празен го пълниш с попването от първият в цикъл, което означава, че първият елемент в новият стек ще е този, който опашката ще попва и след това попваш извън цикъла и ще работи точно като фърст ин фърст аут само, че със стекове.

stack1 = 1,2,3

while(stack1 not empty)

stack2.push(stack1.pop()) // stack2 = 3; stack2 = 2; stack = 1;

stack2.pop() // 1

  • Автор

Благодаля ти за насоките frozener по-преправих  нещата и сега май е по-добре. Стана така

public class Queue<E>

{

 

    private Stack<E> inbox = new Stack<E>();

    private Stack<E> outbox = new Stack<E>();

 

    public void queue(E item) {

        inbox.push(item);

    }

 

    public E dequeue() {

        if (outbox.isEmpty()) {

            while (!inbox.isEmpty()) {

               outbox.push(inbox.pop());

            }

        }

        return outbox.pop();

    }

 

}

За да на отварям нова тема искам пак да попитам, макар да не съм сигурен дали е за тук. Преди време ме върнаха от един изпит :( заради  това, че не успях да изпълня  две от три условия поставани ми като задача, та съвсем случайно попаднах на нея докато разлиствах старите ми записки и ако може някой да удари едно рамо(макар и след толкова време:)) Задачата е следната- За да се съхраняват кеш страници ни трябва кеш сървър. Предложете прост начин за съхраняване на кеш страниците в дървовидна структура(tree)? Моят отговор беше следния:

getpage(T, urlpage)
{
  if T is null:
     T.urlpage = urlpage

  if T.urlpage > urlpage:
     getpage(T.right, urlpage)

  else:
     getpage(T.left, urlpage)      
}

И на тези два въпроса не можах да отговоря преди, а като гледам и сега, ама срам не срам ще питам

1)Какъв би станало (в най-лошия случай) когато четем страница от структурата която си написал?

2) Има ли начин да се подобри дървовидната структура(tree) посочена от теб като се промени page-storage алгоритма и как би го изразил в java?

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.