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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

C++ задача с опашка.

Featured Replies

Здравейте! Имам задача на c++, която представлява :

-Да се състави функция за обединяване на две опашки, след което да се подредят елементите в нея в нарастваща последователност.

Доста пропуснах поради лични проблеми и сега като ми я дадоха задачата съм в шок и ужас. Колегите ми показаха някой неща но все пак ми е неясно.

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

Ще съм благодарен ако някой ми обясни. Не искам код искам сам да го направя. Може пример, но не и тази задачка. Благодаря ! 

#include <iostream>
#include <cstdlib>
#include <ctime>


using namespace std;

struct elem 
{
    int key;
    elem *next;
} ;

struct queue
{
    elem *start;
    elem *end;
} ;


int pop(queue &q)
{
    elem *p=q.start;
    int n=p->key;
    q.start=p->next;
    if (q.start==NULL) q.end=NULL;
    delete p;
    return n;
}

void push(queue &q, int n)
{
     elem *p=new elem;
     p->key = n;
     p->next= NULL;
     if (q.end) q.end->next=p;
     else q.start=p;
     q.end=p;
}

void merge(queue &q, queue &s)
{
     if (s.start==NULL) return;
     if (q.start==NULL) q.start=s.start;
     else q.end->next=s.start;
     q.end=s.end;
     s.start=NULL;
     s.end=NULL;
}

void init(queue &q, int n)
{
    q.start=NULL;
    q.end=NULL;
    for (int i=0; i<n; i++)
    { 
        int t=rand()%1000+1;
        push(q, t);
        cout<<t<<" ";
    }
    cout<<"\n\n";
}

void sort(queue q)
{
     elem *p=q.start;
     while (p)
     {
         int m=p->key;
         elem *s=p->next;
         while (s)
         {
              if (s->key<m)
              {
                   p->key=s->key;
                   s->key=m;
                   m=p->key;
              }
              s=s->next;
         }
         p=p->next;
     }
}

void print(queue q)
{
     elem *p=q.start;
     while (p) 
     {
         cout<<p->key<<" ";
         p=p->next;
     }
     cout<<"\n\n";
}

int main()
{
    queue q1, q2;
    srand(time(NULL));
    cout<<"Queue1: "; init(q1, 8);
    cout<<"Queue2: "; init(q2, 9);
    merge(q1,q2);
    cout<<"Merge : "; print(q1);
    sort(q1);
    cout<<"Sort  : "; print(q1);
    while (q1.start)  pop(q1);
}

 

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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