Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- typedef struct TT
- {
- TT *parent;
- void *data;
- void **control;
- TT *left, *right;
- } TT;
- void InitTT(TT **tree, void *buffer)
- {
- TT *newtree = new TT();
- newtree->data = buffer;
- newtree->control = &newtree->data;
- newtree->left = new TT();
- newtree->right = new TT();
- *tree = newtree;
- }
- template <class X> void AddNode(TT **tree, X data)
- {
- if(*tree == 0 || *tree == (void*)0)
- {
- InitTT(tree, reinterpret_cast<void*>(data));
- }
- else
- {
- TT *newtree = new TT();
- newtree->parent = *tree;
- newtree->data = reinterpret_cast<void*>(data);
- newtree->control = &newtree->data;
- if((int((*tree)->control)) >= (int(data)))
- {
- (*tree)->left = newtree;
- }
- else
- {
- (*tree)->right = newtree;
- };
- };
- }
- void main(void)
- {
- TT *mytree = 0;
- int nums[] = { 0xff, 0xa, 0xf, 1, 5, 3, 2, 0xfff, 0xaa, 0x10 };
- for(int i = 0; i < sizeof(nums)/sizeof(int); i++)
- {
- AddNode<int>(&mytree, nums[i]);
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement