1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| #include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define MAX 100
#define true 1
#define false 0
struct stack {
char vec[MAX];
int sommet;
}st;
void stackinit(){
st.sommet =-1;
return;
}
int stackempty(){
if(st.sommet!=-1) return false ;
else return true;
}
char pop(){
char result;
if(stackempty()){
perror("stack underflow");exit(1);
}
else{
result = st.vec[st.sommet];
st.sommet--;
return(result);
}
}
void push(char x){
if(st.sommet== 99){
perror("stack overflow"); exit(2);}
else{
st.sommet++;
st.vec[st.sommet] =x;}
return;}
main(){
char ex;stackinit();
puts("entrez votre expression");
scanf("%s",&ex);
while(ex=getchar() != '\n'){
switch(ex){
case '(': push(ex);break;
case '{': push(ex);break;
case '[': push(ex);break;
case ')': pop();break;
case ']': pop();break;
case '}': pop();break;
}
if(stackempty()){
puts("l'expression est vraie");
getch();
}
else{
puts("l'expression est fausse");getch();
}
}} |
Partager