Esempio n. 1
0
void main()
{
	Stack S=CreatStack();
	MakeEmpty(S);
	Pop(S);
	printf("\n");
	Push(1.2, S);
	printf("push(1.2),top(s):%f\n", Top(S));
	Push(2, S);
	printf("push(2),top(s):%f\n", Top(S));
	Push(3, S);
	printf("push(3),top(s):%f\n", Top(S));
	Push(4.3, S);
	printf("push(4),top(s):%f\n", Top(S));
	Pop(S);
	printf("pop(s),top(s):%f\n", Top(S));
	Pop(S);
	printf("pop(s),top(s):%f\n", Top(S));

}
int main()
{
	char *sign1 = (char*)malloc(sizeof(char)* 10);
	char *sign2 = (char*)malloc(sizeof(char)* 10);

	stack s = CreatStack();

	while(scanf("%s", sign1) == 1)
	{
	
		printf("7%s7\n", Top(s));

		printf("1%s1\n", sign1);

		if(Isempty(s))
		{
			if(strcmp(sign1, "(") == 0 || strcmp(sign1, "[") == 0 || strcmp(sign1, "{") == 0 || strcmp(sign1, "begin") == 0)
			{
				printf("AAAAAAAAAAA\n");
				Push(sign1, s);

				printf("3%s3\n", Top(s));
			}
			else 
			{
				printf("AWrong!!!\n");
				break;
			}
		
		}
		else
		{
			printf("6%s6\n", Top(s));
			if(strcmp(sign1, "(") == 0 || strcmp(sign1, "[") == 0 || strcmp(sign1, "{") == 0 || strcmp(sign1, "begin") == 0)
			{
				printf("BBBBBBBBBB\n");
				Push(sign1, s);
				printf("4%s4\n", Top(s));
			}
			else if(strcmp(sign1, ")") == 0 || strcmp(sign1, "]") == 0 || strcmp(sign1, "}") == 0 || strcmp(sign1, "end") == 0)
			{
				
				printf("2%s2\n", Top(s));
				
				if((strcmp(Top(s), "(") == 0 && strcmp(sign1, ")") == 0) || (strcmp(Top(s), "[") == 0 && strcmp(sign1, "]") == 0)||
				   (strcmp(Top(s), "{") == 0 && strcmp(sign1, "}") == 0) || (strcmp(Top(s), "begin") == 0 && strcmp(sign1, "end") == 0))
				{
					printf("CCCCCCCCCCCCCCCC\n");
					Pop(s);
				}
				else
				{
					printf("BWrong!!!\n");
					printf("5%s5\n", Top(s));
					break;
				}
			}
		}
    }

		if(Isempty(s))
			printf("You are right!\n");
		else
			printf("CWrong!!!\n");
		while(!Isempty(s))
		{
			printf("%s\n", Top(s));
			Pop(s);
		}
	return 0;
}