Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void moltiplica3(Stack s1, Stack s2, int *err1, int *err2)
- {
- int a, b;
- if(!emptyStack(s1))
- {
- a = pop(s1,err1);
- moltiplica3(s1,s2,err1,err2);
- if(!emptyStack(s2))
- {
- b = a * pop(s2,err2);
- moltiplica3(s1,s2,err1,err2);
- }
- push(s2,b,err2);
- push(s1,a,err1);
- }
- }
- List algo(Queue c1, Queue c2, int *err1, int *err2)
- {
- int a, b;
- List top = (List)malloc(sizeof(struct TList));
- top = NULL;
- if(!emptyQueue(c1) && !emptyQueue(c2))
- {
- a = dequeue(c1,err1);
- b = dequeue(c2,err2);
- if(a%2)
- top = addNodeHead(top,a,0);
- if(!(b%2))
- top = addNodeHead(top,b,0);
- if(top)
- top->next = algo(c1,c2,err1,err2);
- else
- top = algo(c1,c2,err1,err2);
- }
- return top;
- }
- void moltiplica2(Queue q, int *err)
- {
- int a, b, c, cont = 0;
- if(!emptyQueue(q))
- {
- a = dequeue(q,err);
- cont++;
- if(!emptyQueue(q))
- {
- b = dequeue(q,err);
- cont++;
- }
- if(!emptyQueue(q))
- {
- c = dequeue(q,err);
- cont++;
- }
- moltiplica2(q,err);
- if(cont == 3)
- enqueue(q,a*b*c,err);
- else if(cont == 2)
- {
- enqueue(q,b,err);
- enqueue(q,a,err);
- }
- else if(cont == 1)
- enqueue(q,a,err);
- }
- }
- void stackCompito(Stack s, int triple, int *err)
- {
- int a, b, c;
- int cont = 0;
- if(!emptyStack(s))
- {
- a = pop(s,err);
- cont++;
- if(!emptyStack(s))
- {
- b = pop(s,err);
- cont++;
- }
- if(!emptyStack(s))
- {
- c = pop(s,err);
- cont++;
- }
- stackCompito(s,triple+1,err);
- if(cont == 3)
- {
- if(triple%2)
- {
- if(a < c)
- {
- push(s,a,err);
- push(s,c,err);
- }
- else
- {
- push(s,c,err);
- push(s,a,err);
- }
- }
- else
- {
- if(a > c)
- {
- push(s,a,err);
- push(s,c,err);
- }
- else
- {
- push(s,c,err);
- push(s,a,err);
- }
- }
- }
- else if(cont == 2)
- {
- if(triple%2)
- {
- if(a < b)
- {
- push(s,a,err);
- push(s,b,err);
- }
- else
- {
- push(s,b,err);
- push(s,a,err);
- }
- }
- else
- {
- if(a > b)
- {
- push(s,a,err);
- push(s,b,err);
- }
- else
- {
- push(s,b,err);
- push(s,a,err);
- }
- }
- }
- else if(cont == 1)
- push(s,a,err);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement