Commit 52755ca9e98ac51375626c1556b89b38de829ee1

Authored by Georg Hopp
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