-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathb_tree_i_o.h
More file actions
30 lines (27 loc) · 763 Bytes
/
b_tree_i_o.h
File metadata and controls
30 lines (27 loc) · 763 Bytes
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
#pragma once
#include "b_tree.h"
#include "iostream"
template <class T, class Compare> void print_b_tree(BTree<T, Compare>* tree);
template <class T> void print_b_tree_node_r(BTreeNode<T>* node);
template <class T, class Compare>
void print_b_tree(BTree<T, Compare>* tree)
{
print_b_tree_node_r(tree->GetRootPointer());
}
template <class T>
void print_b_tree_node_r(BTreeNode<T>* node)
{
if(node == nullptr || node->keys->GetCount() == 0)
{
return;
}
std::cout << "{";
print_b_tree_node_r(node->keys->Get(0).left_child);
for (size_t i = 0; i < node->keys->GetCount(); ++i)
{
std::cout << node->keys->Get(i).data;
if (i != node->keys->GetCount() - 1) std::cout << ",";
print_b_tree_node_r(node->keys->Get(i).right_child);
}
std::cout << "}";
}