Para simplificar, a pilha só pode entrar e não pode sair, e a fila pode entrar e sair. Acho que as perguntas a seguir podem refletir melhor sua essência e com certeza vou adicioná-las no futuro!
PS: Eu uso um array para simular os novos bonitos
Pilha: Exemplo 1: http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2709/pid/2131
} return 0; }
例题 2 :http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2709/pid/3335
#include <stdio.h> // Esta pergunta é uma lista representativa de várias operações, mas você ainda precisa revisar a pergunta e revisar quais operações ela permite realizar. Cada conjunto de dados experimentais de saída precisa de uma linha em branco
#include <stdlib .h>
#include <string.h>
int a [1100];
char c [20];
int main ()
{ int t; int m, n, top, i, d; scanf ("% d", & t) ; enquanto (t--) { top = 0; scanf ("% d% d", & m, & n); para (i = 1; i <= n; i ++) { scanf ("% s", c); if (strcmp (c, "A") == 0) { if (topo == 0) { printf ("E \ n"); } else {
printf ("% d \ n", a [topo]);
}
}
else if (strcmp (c, "P") == 0)
{ scanf ("% d", & d); if (topo> = m) { printf ("F \ n"); } else {
a [++ topo] = d;
}
}
else if (strcmp (c, "O") == 0)
{ if (top == 0) { printf ("E \ n"); } else { printf (" % d \ n ", a [topo]); --top; } } } printf (" \ n "); } return 0; } Exemplo 3: Encontre o próximo valor máximo: http://acm.sdut.edu .cn / onlinejudge2 / index.php / Home / Contest / contestproblem / cid / 2709 / pid / 3332
, Http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2709/pid/3333 Ambas as questões são escritas em pilha
#include <stdio.h>
#include <stdlib.h>
int main ()
{ int t, n, m; int a [1010], b [1010]; int top, top1; scanf ("% d", & t); para (int j = 1; j <= t; j ++) { top = 0, top1 = 0; scanf ("% d", & n); para (int i = 1; i <= n; i ++) { scanf ("% d", & m); a [++ topo] = m; } para (int i = 1; i <= top; i ++) { int f = 0; para (int t = i; t <= topo; t ++) { if (a [t]>
f = 1;
pausa;
}
}
if (f == 0)
b [++ top1] = - 1;
}
para (int i = 1; i <= top; i ++)
{ printf ("% d ->% d \ n", a [i], b [i]); } if (j! = t)
printf ("\ n");
}
return 0;
}