Pila C y cola 8 del experimento de estructura de datos: operación básica de pila

Experimento de estructura de datos C: Pila y cola 8:
Descripción del funcionamiento básico de la pila

La pila es una estructura de datos básica. La pila tiene dos modos de operación básicos, push y pop. Al presionar un valor, se colocará en la parte superior de la pila, y el valor emergente aparecerá en la parte superior de la pila. Ahora verificaremos el uso de la pila.
Aporte

Primero ingrese el número entero t (1 <= t <= 10), que representa el número de grupos de prueba, y luego ingrese el grupo t.
Para cada conjunto de datos de prueba, ingrese dos números enteros positivos m (1 <= m <= 100) y n (1 <= n <= 1000) en la primera línea, donde m representa la longitud máxima de la pila actual, y n representa este grupo de pruebas El operando que se ingresará a continuación. Luego, para las siguientes n líneas, el primer carácter de cada línea puede ser 'P' u 'O' o'A '; si es' P ', seguirá un número entero, lo que significa enviar estos datos a la pila; si es 'O significa sacar el elemento superior de la pila; si es' A ', significa pedir el valor de la parte superior actual de la pila'.
Producción

Para cada grupo de datos de prueba, la pila se procesa de acuerdo con los caracteres de comando que contiene;
(1) Para todas las operaciones 'P', si la pila está llena, envíe la salida 'F'; de lo contrario, la operación de la pila se completará;
(2) Para todas las operaciones de A ', si la pila está vacía, envíe la salida' E '; de lo contrario, muestre el valor de la parte superior de la pila;
(3) Para todas las operaciones de' O ', si la pila está vacía, muestre la salida' E ', de lo contrario, envíe el valor del elemento superior de la pila y deje que salga de la pila;
cada salida ocupa una línea, y después de que se completa cada grupo de datos de prueba (excepto el último grupo), se envía una línea en blanco.
Muestra

Aporte

2
5 10
A
P 9
A
P 6
P 3
P 10
P 8
A
P 2
O
2 5
P 1
P 3
O
P 5
A
Salida

E
9
8
F
8

3
5

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int date[52];
int main()
{
    
    int top=-1;
char a[10];
    int n,m,h=0,t,i,b;
    scanf("%d",&t);
    while(t--)
    {
    
    top=-1;h=0;
     scanf("%d%d",&m,&n);
     for(i=0;i<n;i++)
     {
    
    
         scanf("%s",a);
         if(a[0]=='P')
         {
    
    
             scanf("%d",&b);
             if(h<m)
             {
    
    date[++top]=b;h++;}
             else
                printf("F\n");
         }
         else if(a[0]=='O')
         {
    
    if(top>-1)
             {
    
    printf("%d\n",date[top]);
                 top--;
             h--;}
             else
                printf("E\n");
         }
         else if(a[0]=='A')
         {
    
    if(top==-1)
         printf("E\n");
         else
             printf("%d\n",date[top]);
         }
     }
     printf("\n");
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/a675891/article/details/103946440
Recomendado
Clasificación