// tree.cpp : Defines the entry point for the console application. #include "stdafx.h" #include #include using namespace std; struct item { int key; item* left; item* right; }; item* root=0; item* search(int k){ item* p=root; while (p!=NULL) { if (k < p->key) p = p->left; else if(k > p->key) p = p->right; else return p; } return p; } item* find (item * p, int k){ if (p==NULL) return NULL; else if (k < p->key) return find (p->left, k); else if (k > p->key) return find (p->right, k); else return p; } void enter (item * & p, int k){ if (p==NULL) { item * u = new item; u->key = k; u->left = NULL; u->right = NULL; p = u; } else if (k < p->key) enter (p->left, k); else if (k > p->key) enter (p->right, k); } void insert (int k) { enter (root, k); } void print (item * p) { if (p != nullptr) { print (p->left); cout << p->key << endl; print (p->right); } } void enter2 (item * * p, int k){ if (*p==NULL) { item * u = new item; u->key = k; u->left = NULL; u->right = NULL; *p = u; } else if (k < (*p)->key) enter ((*p)->left, k); else if (k>(*p)->key) enter ((*p)->right, k); } void enter3 (int k){ item * * p = & root; while (true) { if (*p==NULL) { item * u = new item; u->key = k; u->left = NULL; u->right = NULL; *p = u; return; } else if (k < (*p)->key) p = & ((*p)->left ); else if (k > (*p)->key) p = & ((*p) ->right); } } int _tmain(int argc, _TCHAR* argv[]) { cout << "Hello" << endl; insert (7); insert (5); insert (10); enter (root, 17); enter2 (&root, 27); enter3 (37); print (root); cout << "End" << endl; system ("pause"); return 0; }