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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

функция за копиране на опашка

Featured Replies

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

#include <iostream>
using namespace std;
struct elem
{
    int key;
    elem *next;
}*f1=NULL, *l1=NULL, *f2=NULL, *l2=NULL;
void copyQueue(int n,elem *&first,elem *&last);
void push(int n,elem *&first,elem *&last)
{
    elem *p=last;
    last=new elem;
    last->key=n;
    last->next=NULL;
    if(p!=NULL)
        p->next=last;
    else
        first=last;
}
int pop(int &n,elem *&first,elem *&last)
{
    elem *p=NULL;
    if(first)
    {
        n=first->key;
        p=first;
        first=first->next;
    if (first==NULL)
        last=first;
    delete p;
    return 1;
    }
    else
        return 0;
}
void main()
{
    int num;
    do{
        cout<<"Vuvedete stoinost: ";
        cin>>num;
        push(num,f1,l1);
      }while(num!=0);
    cout<< "Stoinosti na opashkata: "<<endl;
    while(pop(num,f1,l1))
    {
        cout<<num<<" ";
    }
    
    
    
 

Не е ясно какво точно искаш да се направи. копират се елементите от едната опашка в другата, но какво става с първата опашка запазва ли стойностите си или трябва да се изпразни? И друго ако втората опашка преди копирането не е празна , елементите от първата ги добавяш към края й или първо я изчистваш и след това добавяш елементите?

  • Автор

Да запазват се стойностите,а втората първо я изчистваме ако не е празна и след това се добавят елементите.Някакъв съвет как би трябвало да стане ?

Нещо такова, само че съм ги събрал указателите за началото и края на опашката в отделна структура за да са на едно място.

#include <iostream>

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 copyqueue(queue &q, queue &s)
{
     while(q.start) pop(q);
     elem *p=s.start;
     while (p)
     {
         push(q,p->key);
         p=p->next;
     }
}

int main()
{
    queue q1={NULL, NULL};
    queue q2={NULL, NULL};
    int n;
    
    while (1)
    {
        cout<<"Vuvedete stoinost: ";
        cin>>n;
        if (n==0) break;
        push(q1,n);
    }
    copyqueue(q2,q1);
    cout<< "Stoinosti na opashka 1: ";
    while(q1.start)
    {
        cout<<pop(q1)<<" ";
    }
    cout<<endl<<endl;
    cout<< "Stoinosti na opashka 2: ";
    while(q2.start)
    {
        cout<<pop(q2)<<" ";
    }
}

 

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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