From c09256f42dfa9009f6ba9c06c68a05f4dee23d80 Mon Sep 17 00:00:00 2001 From: jordan-matthews-98 <45404939+jordan-matthews-98@users.noreply.github.com> Date: Tue, 27 Aug 2019 10:14:38 -0500 Subject: [PATCH] fixed BFT, removed unneeded code --- Data Structure/Tree.cpp | 46 ++++++++++++++--------------------------- 1 file changed, 16 insertions(+), 30 deletions(-) diff --git a/Data Structure/Tree.cpp b/Data Structure/Tree.cpp index 963779abe..9058eece4 100644 --- a/Data Structure/Tree.cpp +++ b/Data Structure/Tree.cpp @@ -1,4 +1,5 @@ #include +#include using namespace std; @@ -9,27 +10,6 @@ struct node node *right; }; -struct queue -{ - node *t[100]; - int front; - int rear; -}; - -queue q; - - -void enqueue(node *n) -{ - q.t[q.rear++]=n; -} - -node * dequeue() -{ - return (q.t[q.front++]); -} - - void CreateTree(node *curr, node *n, int x, char pos) { @@ -64,13 +44,21 @@ void CreateTree(node *curr, node *n, int x, char pos) void BFT(node *n) { - if(n!=NULL) - { - cout<val<<" "; - enqueue(n->left); - enqueue(n->right); - BFT(dequeue()); - } + list queue; + + queue.push_back(n); + + while(!queue.empty()) + { + n = queue.front(); + cout << n->val << " "; + queue.pop_front(); + + if(n->left != NULL) + queue.push_back(n->left); + if(n->right != NULL) + queue.push_back(n->right); + } } void Pre(node *n) @@ -108,8 +96,6 @@ void Post(node *n) int main() { - q.front=0; - q.rear=0; int value; int ch; node *root=new node;