A primeira revisão do final: pilha e fila (1) aplicação de pilha

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;
}

 

 

 

 

 

Acho que você gosta

Origin blog.csdn.net/weixin_44067773/article/details/87857850
Recomendado
Clasificación