Skip to content

Instantly share code, notes, and snippets.

Created March 30, 2012 11:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anonymous/2250912 to your computer and use it in GitHub Desktop.
Save anonymous/2250912 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include "stack.h"
int check(char* expression){
int i;
for(i=0; i<= strlen(expression); i++){
if(expression[i]=='(')
{
push('(');
}
else if(expression[i]==')')
{
is_empty();
pop('(');
}
if(expression[i]=='{')
{
push('{');
}
else if(expression[i]=='}')
{
is_empty();
pop('{');
}
if(expression[i]=='[')
{
push('[');
}
else if(expression[i]==']')
{
is_empty();
pop('[');
}
}
is_empty();
}
void test(void){
assert(check(""));
assert(check("()"));
assert(check("()()"));
assert(check("(())"));
assert(check("{}"));
assert(check("{}{}"));
assert(check("{{}}"));
assert(check("[]"));
assert(check("[][]"));
assert(check("[[]]"));
assert(check("{[]}"));
assert(check("([{}])"));
assert(check("[{{{()}}}]"));
assert(check("([{()}])"));
assert(!check(")("));
assert(!check("("));
assert(!check(")"));
assert(!check("}{"));
assert(!check("{"));
assert(!check("}"));
assert(!check("]["));
assert(!check("["));
assert(!check("]"));
assert(!check("(()"));
assert(!check("())"));
assert(!check("{{}"));
assert(!check("{}}"));
assert(!check("[[]"));
assert(!check("[]]"));
assert(!check("{)"));
assert(!check("({])"));
assert(!check("{[({)]}"));
assert(!check("[({)]"));
assert(!check("[(}]"));
assert(!check("{{[}}"));
}
int main(void){
test();
clean_stack();
return 0;
}
#include <stdio.h>
#include <assert.h>
char values[100];
int index=0;
int push(char c){
c = values[index++];
}
int pop(char c){
if(index>0)
{
c = values[--index];
}
else if(index<0)
{
return 0;
}
}
int is_empty(void){
return index==0;
}
int clean_stack(void){
index=0;
}
#pragma once
int push(char c);
int pop(char c);
int is_empty(void);
int clean_stack();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment