Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Создать стек с целыми числами
- и разбить его на два с четными
- и нечетными числами, нулевые
- числа удалить.
- Неправильная версия. Вывод должен быть другим.
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- struct Node {int k; Node *next;};
- Node *Push(Node *p,int k)
- {
- Node *t=new Node;
- t->k=k;
- t->next=p;
- return t;
- }
- Node *Pop(Node *p)
- {
- if(!p) return 0;
- Node *t=p->next;
- delete p;
- return t;
- }
- int Top(Node *p)
- {
- if(p) return p->k;
- puts("\n the stack is empty");
- getchar();
- exit(1);
- }
- bool Empty(Node *p)
- {
- if(p) return false;
- return true;
- }
- int main()
- {
- int n=10, i, ja=0, jb=0, a[10], b[10], k=0;
- Node *beg=NULL;
- srand(time(0));
- for(i=0; i<n; ++i)
- {
- a[i]=rand()%10;
- printf("%d ",a[i]);
- beg=Push(beg,a[i]);
- }
- for(i=0; !Empty(beg); i++)
- {
- k=Top(beg);
- if(k==0) beg=Pop(beg);
- else
- {
- if (k%2==0) {a[ja]=k; ja++;}
- else {b[jb]=k; jb++;}
- beg=Pop(beg);
- }
- }
- puts("\n Conclusion: ");
- for(i=0; i<ja; ++i) printf("%d ",a[i]);
- putchar('\n');
- for(i=0; i<jb; ++i) printf("%d ",b[i]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement