Untitled
unknown
plain_text
a year ago
2.0 kB
9
Indexable
#include <stdio.h> struct BinaryNode* createNode(char a); struct BinaryNode* createExpressionTree(); struct BinaryNode{ char data; struct BinaryNode* left; //left child struct BinaryNode* right; //right child }; //(a + b * c) + ((d * e+f) * g) main(){ struct BinaryNode* root = createExpressionTree(); //printf("%c ", root->data); //printf("%c ", root->left->data); //printf("%c ", root->right->data); //preorder preOrderTraversal(root); } void preOrderTraversal(struct BinaryNode* node){ if(node == NULL) return; printf("%c", node->data); preOrderTraversal(node->left); preOrderTraversal(node->right); } struct BinaryNode* createExpressionTree(){ struct BinaryNode* root = createNode('+'); struct BinaryNode* node1 = createNode('+'); root->left = node1; struct BinaryNode* node2 = createNode('a'); node1->left = node2; struct BinaryNode* node3 = createNode('*'); node1->right = node3; struct BinaryNode* node4 = createNode('b'); node3->left = node4; struct BinaryNode* node5 = createNode('c'); node3->right = node5; struct BinaryNode* node6 = createNode('*'); root->right = node6; struct BinaryNode* node6left = createNode('+'); struct BinaryNode* node6right = createNode('g'); node6->left = node6left; node6->right = node6right; struct BinaryNode* node7left = createNode('*'); struct BinaryNode* node7right= createNode('f'); node6left->left = node7left; node6left->right = node7right; struct BinaryNode* node8left = createNode('d'); struct BinaryNode* node8right= createNode('e'); node7left->left = node8left; node7left->right = node8right; return root; }; struct BinaryNode* createNode(char a){ struct BinaryNode* node = malloc(sizeof(struct BinaryNode)); node->data = a; node->left = NULL; node->right = NULL; return node; };
Editor is loading...
Leave a Comment