就第一个过第二个红第三个紫
查看原帖
就第一个过第二个红第三个紫
1217917
AAAABCDDD楼主2024/3/31 14:35
#include <stdio.h>
#include <stdlib.h>

typedef struct stack
{
	long long *data;
	long long size, top, count;
} Stack;

Stack *initStack(long long n)
{
	Stack *p = (Stack *)malloc(sizeof(Stack));
	p->size = n;
	p->data = (long long *)malloc(sizeof(long long) * p->size);
	p->top = -1;
	p->count = 0;
	return p;
}

void push(Stack *s, long long n)
{
	if(s == NULL) return ; 
	s->data[++s->top] =  n;
	s->count ++;
	return ;
}

void pop(Stack *s)
{
 	if(s->top == -1) 
 	{
		printf("Empty\n"); 	
		return ;
	}
	s->top --;
	s->count --;
	return ;
}

void query(Stack *s)
{
	
	if(s->top == -1)
	{
		printf("Anguei!\n");
		return ;
	}
	printf("%lld\n", s->data[s->top]);
	return ;
}

void size(Stack *s)
{
	printf("%lld\n", s->count); 
}

void clear(Stack *s)
{
	free(s->data);
	free(s);
}

int main()
{
	long long T;
	long long m, n;
	scanf("%lld", &T);
	Stack *s = initStack(T);
	char c[10] = " ";
	while( T > 0)
	{
		T--;
		scanf("%lld", &n);
		for(n; n > 0; n--)
		{
			scanf("%s", c);
			if(c[0] == 'p' && c[1] == 'u')
			{
				scanf("%lld", &m);
				push(s, m);
				
			}
			
			if(c[0] == 'p' && c[1] == 'o')
			{
				pop(s);
			}
		
			if(c[0] == 's')
			{
				size(s);
			}
			
			if(c[0] == 'q')	
			{
				query(s);
			}
		}
	
	}
	return 0;
}
2024/3/31 14:35
加载中...