Untitled
unknown
plain_text
3 years ago
2.0 kB
2
Indexable
#include <stdio.h> #include <stdlib.h> //#include "function.h" //#ifndef FUNCTION_H #define FUNCTION_H char expr[256]; int pos,x,y,a,b,c,d; typedef struct treeNode { char data; struct treeNode *left; struct treeNode *right; } Node; int printInfix(Node *root){ if (root != NULL) { if(root->data=='|'){ x=printPrefix(root->left); y=printPrefix(root->right); if((x+y)==2) y=0; return x+y; } else if(root->data=='&'){ x=printPrefix(root->left); y=printPrefix(root->right); return x*y; } else if(root->data=='A'){ return a; } else if(root->data=='B'){ return b; } else if(root->data=='C'){ return c; } else if(root->data=='D'){ return d; } } } void constructTree(Node** head) { char c; if((*head)==NULL) { (*head) = (Node *)malloc(sizeof(Node)); c = getchar(); (*head)->data = c; (*head)->left = (*head)->right = NULL; if((*head)->left == NULL && ((*head)->data=='&' || (*head)->data=='|')) constructTree( &(*head)->left); if((*head)->right == NULL && ((*head)->data=='&' || (*head)->data=='|')) constructTree( &(*head)->right); } } void freeTree(Node *root) { if (root!=NULL) { freeTree(root->left); freeTree(root->right); free(root); } } int main(void){ int e; getchar(); Node *root=NULL; constructTree(&root); for(a=0;a<=1;a++){ for(b=0;b<=1;b++){ for(c=0;c<=1;c++){ for(d=0;d<=1;d++){ e=printPrefix(&root); printf("%d %d %d %d %d\n",a,b,c,d,e); } } } } freeTree(root); return 0; }
Editor is loading...