需要,支持鱼C论坛
想看啊啊啊啊啊
支持小甲鱼
这么强,点个赞
辛苦了
学习下甲鱼老师
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXSIZE 128
typedef struct
{
char *base, *top;
int capacity;
} Stack;
int InitStack(Stack *pstack)
{
pstack -> base = pstack -> top = (char*)malloc(sizeof(char) * MAXSIZE);
if(!pstack -> base)
return 0;
pstack -> capacity = MAXSIZE;
return 1;
}
int Push(Stack *pstack, char ch)
{
if(pstack -> top - pstack -> base >= pstack -> capacity)
{
pstack -> base = (char*)realloc(pstack -> base, (pstack -> capacity + 10) * sizeof(char));
pstack -> top = pstack -> base + pstack -> capacity;
pstack -> capacity += 10;
}
*(pstack -> top++) = ch;
}
void Pop(Stack *pstack, char *ch)
{
*ch = *(--pstack -> top);
}
int Empty(Stack *pstack)
{
return(pstack -> top - pstack -> base == 0);
}
int main()
{
Stack mStack;
char buffer;
int i, len;
InitStack(&mStack);
gets(buffer);
len = strlen(buffer);
for(i = 0; i < len; i++)
{
/*if(buffer == '(')
{
if(i + 1 < len && buffer == ')')
{
i += 1;
continue;
}
}
else if(buffer == '[')
{
if(i + 1 < len && buffer == ']')
{
i += 1;
continue;
}
}*/
if(buffer == '(' || buffer == '[' || buffer == '{' || buffer == '<')
Push(&mStack, buffer);
else if(buffer == ')' || buffer == ']' || bufffer == '}' || buffer == '>')
{
char temp;
Pop(&mStack, &temp);
if((temp == '(' && buffer == ')') || (temp == '[' && buffer == ']') ||
(temp == '{' && bufffer == '}') || (temp == '<' && buffer == '>'))
continue;
else {
printf("isn't matched.\n");
return 0;
}
}
}
if(Empty(&mStack))
printf("matched.\n");
else
printf("isn't matched.\n");
return 0;
}
学习
1
来看看
这个功能不错,虽然我没用栈~~~
瞅瞅
感谢小甲鱼老师
赞一个,谢谢
支持
下载一个
y
答案
。
遇到注释呢?