데이터 구조 -- 괄호 일치 검사
//
// C-Free 5.0
#include
#include
#define MAXSIZE 100
typedef struct
{
int *base; //
int *top; //
int stacksize;
}SqStack;
void InitStack(SqStack*s)
{
s->base = (int *)malloc(MAXSIZE*sizeof(int));// 100*sizeof(int)
if (!s->base)
{
return; // ( )
}
s->top = s->base;
s->stacksize = MAXSIZE;
}
void push(SqStack *s, char x) //
{
if (s->top-s->base==s->stacksize) //
{
return;
}
*s->top++ = x;
}
char GetTop(SqStack *s) //
{
if (s->top != s->base)
{
return*(s->top-1);
}
}
char pop(SqStack *s) //
{
if (s->top == s->base)
{
return' ';
}
char e;
e = *--s->top;
return e;
}
int Maching()
{
SqStack ss; //
SqStack *s = &ss; //
InitStack(s); //
int flag = 1;
printf(" ");
char ch = getchar();
while (ch != '#'&&flag)
{
switch(ch)
{
//char aa;
//char bb;
case '[':
case '(':
push(s, ch); //
break;
case ')':
//aa=GetTop(s);
if (!(s->top == s->base) && GetTop(s) == '(')
{
pop(s); //
}
else
{
flag = 0;
}
break;
case ']':
//bb=GetTop(s);
if (!(s->top == s->base) &&GetTop(s) == '[')
{
pop(s); //
}
else
{
flag = 0;
}
break;
}
ch = getchar();
}
if (s->top == s->base)
{
return 1;
}
else
{
return 0;
}
}
void main()
{
int n;
n=Maching();
if(n)
{
printf("
");
}
else
{
printf("
");
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.