| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 | ||
Да, спасибо! Просто проблема была в том, что из массива в очередь поместить не удавалось без функций( push ). Я сейчас функциями очередь реализовываю и потом for(i=1;i<=j;i++) push(a[i]), верно же мыслю?)) |
| Автор: rudolfninja 3.6.2015, 14:56 |
Верно мыслите, только push и pop принято называть функции добавления и извлечения из стека. Для очереди лучше назвать, например, add. Хотя, от имени функции ничего, кроме дальнейшего сопровождения программы, не зависит. |