Commit 52755ca9e98ac51375626c1556b89b38de829ee1
1 parent
a543ed85
realize that delete does not work correct.
Showing
1 changed file
with
34 additions
and
42 deletions
... | ... | @@ -246,7 +246,6 @@ void printElement(int data, int depth) |
246 | 246 | int |
247 | 247 | main(int argc, char * argv[]) |
248 | 248 | { |
249 | - int i; | |
250 | 249 | struct element * root = NULL; |
251 | 250 | |
252 | 251 | insertElement(&root, 13); |
... | ... | @@ -259,49 +258,42 @@ main(int argc, char * argv[]) |
259 | 258 | insertElement(&root, 10); |
260 | 259 | |
261 | 260 | /* |
262 | - * after this I have the following: | |
263 | - * | |
264 | - * Element 03: n=0x0xcf50d0 p=0x0xcf5040 l=0x(nil) r=0x(nil) | |
265 | - * Element 08: n=0x0xcf5040 p=0x0xcf5010 l=0x0xcf50d0 r=0x0xcf50a0 | |
266 | - * Element 09: n=0x0xcf5100 p=0x0xcf50a0 l=0x(nil) r=0x0xcf5160 | |
267 | - * Element 10: n=0x0xcf5160 p=0x0xcf5100 l=0x(nil) r=0x(nil) | |
268 | - * Element 11: n=0x0xcf50a0 p=0x0xcf5040 l=0x0xcf5100 r=0x0xcf5130 | |
269 | - * Element 12: n=0x0xcf5130 p=0x0xcf50a0 l=0x(nil) r=0x(nil) | |
270 | - * Element 13: n=0x0xcf5010 p=0x(nil) l=0x0xcf5040 r=0x0xcf5070 | |
271 | - * Element 16: n=0x0xcf5070 p=0x0xcf5010 l=0x(nil) r=0x(nil) | |
272 | - * | |
273 | - * which translates to: | |
274 | - * | |
275 | - * 03 has p:08, l:N , R:N | |
276 | - * 08 has p:13, l:03, r:11 | |
277 | - * 09 has p:11, l:N , r:10 | |
278 | - * 10 has p:09, l:N , r:N | |
279 | - * 11 has p:08, l:09, r:12 | |
280 | - * 12 has p:11, l:N , r:N | |
281 | - * 13 has p:N , l:08, r:16 | |
282 | - * 16 has p:13, l:N , r:N | |
283 | - * | |
284 | - * which visualizes as: | |
285 | - * 13 | |
286 | - * 08 16 | |
287 | - * 03 11 0 0 | |
288 | - * 0 0 09 12 | |
289 | - * 0 10 0 0 | |
290 | - * | |
291 | - * Looks like the insert works properly. | |
292 | - * So the problem is out traversing... | |
261 | + * delete does not work correctly here.. | |
262 | + * luckily I do not need the simple binary trees anymore | |
263 | + * as I have rbtrees. | |
293 | 264 | */ |
294 | - puts("elements:"); | |
295 | - for (i=1; i<20; i++) { | |
296 | - struct element * element = findElement(root, i); | |
297 | - printf("Element %02d: n=0x%p p=0x%p l=0x%p r=0x%p\n", | |
298 | - i, | |
299 | - element, | |
300 | - element ? element->parent : 0x0, | |
301 | - element ? element->left : 0x0, | |
302 | - element ? element->right : 0x0); | |
303 | - } | |
265 | + puts("traverse"); | |
266 | + traverse(root, printElement); | |
267 | + | |
268 | + deleteElement(&root, 8); | |
269 | + puts("traverse"); | |
270 | + traverse(root, printElement); | |
271 | + | |
272 | + deleteElement(&root, 11); | |
273 | + puts("traverse"); | |
274 | + traverse(root, printElement); | |
275 | + | |
276 | + deleteElement(&root, 13); | |
277 | + puts("traverse"); | |
278 | + traverse(root, printElement); | |
279 | + | |
280 | + deleteElement(&root, 3); | |
281 | + puts("traverse"); | |
282 | + traverse(root, printElement); | |
283 | + | |
284 | + deleteElement(&root, 16); | |
285 | + puts("traverse"); | |
286 | + traverse(root, printElement); | |
287 | + | |
288 | + deleteElement(&root, 10); | |
289 | + puts("traverse"); | |
290 | + traverse(root, printElement); | |
291 | + | |
292 | + deleteElement(&root, 9); | |
293 | + puts("traverse"); | |
294 | + traverse(root, printElement); | |
304 | 295 | |
296 | + deleteElement(&root, 12); | |
305 | 297 | puts("traverse"); |
306 | 298 | traverse(root, printElement); |
307 | 299 | ... | ... |
Please
register
or
login
to post a comment