Home | History | Annotate | Download | only in cachegrind

Lines Matching refs:rootp

1065 Bool avl_insert_wrk ( AvlNode**         rootp, 
1079 if (!(*rootp)) {
1080 (*rootp) = a;
1084 cmpres = kCmp( (*rootp)->key, a->key );
1088 if ((*rootp)->left) {
1089 AvlNode* left_subtree = (*rootp)->left;
1091 switch ((*rootp)->balance--) {
1097 if ((*rootp)->left->balance < 0) {
1098 avl_swr( rootp );
1099 (*rootp)->balance = 0;
1100 (*rootp)->right->balance = 0;
1102 avl_swl( &((*rootp)->left) );
1103 avl_swr( rootp );
1104 avl_nasty( *rootp );
1107 (*rootp)->left = left_subtree;
1111 (*rootp)->left = a;
1112 if ((*rootp)->balance--)
1121 if ((*rootp)->right) {
1122 AvlNode* right_subtree = (*rootp)->right;
1124 switch((*rootp)->balance++){
1130 if ((*rootp)->right->balance > 0) {
1131 avl_swl( rootp );
1132 (*rootp)->balance = 0;
1133 (*rootp)->left->balance = 0;
1135 avl_swr( &((*rootp)->right) );
1136 avl_swl( rootp );
1137 avl_nasty( *rootp );
1140 (*rootp)->right = right_subtree;
1144 (*rootp)->right = a;
1145 if ((*rootp)->balance++)
1155 oldV->w = (*rootp)->val;
1156 (*rootp)->val = a->val;
1165 Bool avl_remove_wrk ( AvlNode** rootp,
1170 Word cmpres = kCmp( (*rootp)->key, a->key );
1174 AvlNode* left_subtree = (*rootp)->left;
1177 (*rootp)->left=left_subtree;
1179 switch ((*rootp)->balance++) {
1185 switch ((*rootp)->right->balance) {
1187 avl_swl( rootp );
1188 (*rootp)->balance = -1;
1189 (*rootp)->left->balance = 1;
1192 avl_swl( rootp );
1193 (*rootp)->balance = 0;
1194 (*rootp)->left->balance = 0;
1201 rootp)->right) );
1202 avl_swl( rootp );
1203 avl_nasty( *rootp );
1210 AvlNode* right_subtree = (*rootp)->right;
1213 (*rootp)->right = right_subtree;
1215 switch ((*rootp)->balance--) {
1221 switch ((*rootp)->left->balance) {
1223 avl_swr( rootp );
1224 (*rootp)->balance = 1;
1225 (*rootp)->right->balance = -1;
1228 avl_swr( rootp );
1229 (*rootp)->balance = 0;
1230 (*rootp)->right->balance = 0;
1237 avl_swl( &((*rootp)->left) );
1238 avl_swr( rootp );
1239 avl_nasty( *rootp );
1245 assert((*rootp)==a);
1246 return avl_removeroot_wrk(rootp, kCmp);
1251 /* Remove the root of the AVL tree *rootp.
1252 * Warning: dumps core if *rootp is empty
1255 Bool avl_removeroot_wrk ( AvlNode** rootp,
1260 if (!(*rootp)->left) {
1261 if (!(*rootp)->right) {
1262 (*rootp) = 0;
1265 (*rootp) = (*rootp)->right;
1268 if (!(*rootp)->right) {
1269 (*rootp) = (*rootp)->left;
1272 if ((*rootp)->balance < 0) {
1274 a = (*rootp)->left;
1278 a = (*rootp)->right;
1281 ch = avl_remove_wrk(rootp, a, kCmp);
1282 a->left = (*rootp)->left;
1283 a->right = (*rootp)->right;
1284 a->balance = (*rootp)->balance;
1285 (*rootp) = a;