- active=node;
- for (node=(NodeInfo *) NULL; active != (NodeInfo *) NULL; )
- {
- next=(NodeInfo *) NULL;
- if (active->left != (NodeInfo *) NULL)
- {
- next=node;
- key=active->left->key;
- if ((clone_key != (void *(*)(void *)) NULL) &&
- (key != (void *) NULL))
- key=clone_key(key);
- value=active->left->value;
- if ((clone_value != (void *(*)(void *)) NULL) &&
- (value != (void *) NULL))
- value=clone_value(value);
- (void) AddValueToSplayTree(clone_tree,key,value);
- node=active->left;
- }
- if (active->right != (NodeInfo *) NULL)
- {
- next=node;
- key=active->right->key;
- if ((clone_key != (void *(*)(void *)) NULL) &&
- (key != (void *) NULL))
- key=clone_key(key);
- value=active->right->value;
- if ((clone_value != (void *(*)(void *)) NULL) &&
- (value != (void *) NULL))
- value=clone_value(value);
- (void) AddValueToSplayTree(clone_tree,key,value);
- node=active->right;
- }
- active=next;
- }