Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Поместить элементы массива в очередь.


Автор: 420 2.6.2015, 07:18
Всем доброго времени суток! Уважаемые, выручайте!
Есть такой код:
#include<iostream>
using namespace std;
struct stack
{
    int info;
    stack*next;
};
struct queue
{
    int info;
    queue*next1;
};
void main()
{
    stack*k,*top;
    int w,s=0; float sr,count=0;
    top=NULL;
    cin>>w;
    int count2=0;
    int *a=new int [];
    int i;
    while(!feof(stdin))
    {
        k=new stack;
        k->info=w;
        k->next=top;
        top=k;
        cin>>w;
        count++;
        s+=k->info;
    }
    k=top;
    sr=s/count;
    cout<<"Stack:\n";
    while(k!=NULL)
    {
        cout<<k->info<<' ';
        k=k->next;
    }
    cout<<endl;
    int j=0;
    k=top;
    while(k!=NULL)
    {
        if(k->info%2==0)
        {
            j++;
            a[j]=k->info;
        }
        k=k->next;
    }
    cout<<"SR = "<<sr<<endl;
    cout<<"Massiv:\n";
    for(int i=1;i<=j;i++)
        cout<<a[i]<<' ';
    cout<<endl;
}
Как видите, реализуется стек и его четные элементы помещаются в массив.
Подскажите пожалуйста, как элементы этого массива поместить в очередь?

Автор: rudolfninja 2.6.2015, 09:57
А вы для стека сами писали? Основное отличие стека от очереди только в порядке расположения элементов. Думаю, что если вы стек писали сами, то с очередью у вас не должно быть проблем.
Еще бы я посоветовал сделать функции заталкивания/выталкивания элементов в/из стека и аналогичные для очереди - так будет проще читать вашу программу.

Автор: 420 3.6.2015, 03:55
Цитата(rudolfninja @ 2.6.2015,  09:57)
А вы для стека сами писали? Основное отличие стека от очереди только в порядке расположения элементов. Думаю, что если вы стек писали сами, то с очередью у вас не должно быть проблем.
Еще бы я посоветовал сделать функции заталкивания/выталкивания элементов в/из стека и аналогичные для очереди - так будет проще читать вашу программу.

Да, спасибо! Просто проблема была в том, что из массива в очередь поместить не удавалось без функций( push ). Я сейчас функциями очередь реализовываю и потом for(i=1;i<=j;i++) push(a[i]), верно же мыслю?))

Автор: rudolfninja 3.6.2015, 14:56
Цитата(420 @  3.6.2015,  03:55 Найти цитируемый пост)
верно же мыслю?)) 

Верно мыслите, только push и pop принято называть функции добавления и извлечения из стека.
Для очереди лучше назвать, например, add. Хотя, от имени функции ничего, кроме дальнейшего сопровождения программы, не зависит.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)