Dsa Prac 4
Dsa Prac 4
ROLL NO. : B 64
Lab Asssignment : 4
Statement: Construct an expression tree from the given prefix and traverse it using post order
traversal and then delete the entire tree */
#include<iostream>
#include<string.h>
struct node{
char data;
node *left;
node *right;
};
class tree
public:
node *top;
void expression(char[]);
};
class stack1{
node *data[30];
int top;
public:
stack1() {
top = -1;
int empty() {
data[++top] = p;
node *pop() {
return (data[top--]);
};
char c;
stack1 s;
top->left = NULL;
top->right = NULL;
if(isalpha(prefix[i])) {
top->data = prefix[i];
s.push(top);
t2 = s.pop();
t1 = s.pop();
top->data = prefix[i];
top->left = t2;
top->right = t1;
s.push(top);
top = s.pop();
if(root != NULL) {
display(root->left);
display(root->right);
node *T = top;
while (!s1.empty()) {
T = s1.pop();
s2.push(T);
if (T->left != NULL)
s1.push(T->left);
if (T->right != NULL)
s1.push(T->right);
while (!s2.empty()) {
top = s2.pop();
if (node == NULL)
return;
del(node->left);
del(node->right);
cout << endl << "deleting node: " << node->data << endl;
delete node;
int main() {
char expr[20];
tree t;
cout << "Enter prefix expression: ";
t.expression(expr);
t.non_rec_postorder(t.top);
t.del(t.top);
return 0;
}
NAME: SHIVANI NIKAM
ROLL NO. : B 64
OUTPUT:
-------------------------------------------------------------------------------------------------------------------
ab+cd-*
deleting node: a
deleting node: b
deleting node: +
deleting node: c
deleting node: d
deleting node: -
deleting node: *