Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream fin ("text.in");
- ofstream fout ("text.out");
- struct Tree {
- int info;
- Tree *parent, *left, *right;
- };
- Tree *tree;
- void Insert (Tree **l, int x, Tree *parent) {
- Tree *p;
- if (*l == NULL) {
- p = new Tree;
- p -> info = x;
- p -> left = p -> right = nullptr;
- p -> parent = parent;
- *l = p;
- return;
- }
- if (x < (*l) -> info)
- Insert (&((*l) -> left), x, *l);
- else
- Insert (&((*l) -> right), x, *l);
- }
- Tree *Search (Tree *l, int x) {
- if (l == nullptr)
- return nullptr;
- if (l -> info == x)
- return l;
- if (x < l -> info)
- return Search (l -> left, x);
- else
- return Search (l -> right, x);
- }
- Tree *Minimum (Tree *T) {
- Tree *Min;
- if (T == nullptr)
- return nullptr;
- Min = T;
- while (Min -> left != nullptr)
- Min = Min -> left;
- return Min;
- }
- Tree *Maximum (Tree *T) {
- Tree *Max;
- if (T == nullptr)
- return nullptr;
- Max = T;
- while (Max -> right != nullptr)
- Max = Max -> right;
- return Max;
- }
- void InOrder_traversal (Tree *l) {
- if (l != nullptr) {
- InOrder_traversal(l -> left);
- fout << l -> info << ' ';
- InOrder_traversal(l -> right);
- }
- }
- void PreOrder_traversal (Tree *l) {
- if (l != nullptr) {
- fout << l -> info << ' ';
- PreOrder_traversal(l -> left);
- PreOrder_traversal(l -> right);
- }
- }
- void PostOrder_traversal (Tree *l) {
- if (l != nullptr) {
- PostOrder_traversal(l -> left);
- PostOrder_traversal(l -> right);
- fout << l -> info << ' ';
- }
- }
- int main () {
- Insert (&tree, 2, nullptr);
- Insert (&tree, 5, nullptr);
- Insert (&tree, 7, nullptr);
- Insert (&tree, 8, nullptr);
- Insert (&tree, 9, nullptr);
- Tree *node = Minimum (tree);
- fout << node -> info;
- fout << '\n';
- Tree *Node = Maximum (tree);
- fout << Node -> info;
- fout << '\n';
- InOrder_traversal(tree);
- fout << '\n';
- PreOrder_traversal(tree);
- fout << '\n';
- PostOrder_traversal(tree);
- fout << '\n';
- Tree *nod = Search (tree, 2);
- if (nod != nullptr)
- fout << "YES\n";
- else
- fout << "NO\n";
- Tree *Nod = Search (tree, 10);
- if (Nod != nullptr)
- fout << "YES\n";
- else
- fout << "NO\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment