美文网首页
001 红黑树(二)之 C语言的实现(3)

001 红黑树(二)之 C语言的实现(3)

作者: 编程小世界 | 来源:发表于2019-06-26 19:48 被阅读0次

红黑树的测试文件(rbtree_test.c):

1/**

2*C语言实现的红黑树(RedBlackTree)

3*

4* @author skywang

5* @date2013/11/18

6*/

7#include<stdio.h>

8#include"rbtree.h"

9#defineCHECK_INSERT0//"插入"动作的检测开关(0,关闭;1,打开)

10#defineCHECK_DELETE0//"删除"动作的检测开关(0,关闭;1,打开)

11#defineLENGTH(a) ( (sizeof(a)) / (sizeof(a[0])) )

12voidmain()

13

{

14inta[] = {10,40,30,60,90,70,20,50,80};

15inti, ilen=LENGTH(a);

16RBRoot*root=NULL;

17root = create_rbtree();

18printf("== 原始数据: ");

19for(i=0; i

20printf("%d ", a[i]);

21printf("\n");

22for(i=0; i

23{

24insert_rbtree(root, a[i]);

25#ifCHECK_INSERT

26printf("== 添加节点: %d\n", a[i]);

27printf("== 树的详细信息: \n");

28print_rbtree(root);

29printf("\n");

30#endif

31}

32printf("== 前序遍历: ");

33preorder_rbtree(root);

34printf("\n== 中序遍历: ");

35inorder_rbtree(root);

36printf("\n== 后序遍历: ");

37postorder_rbtree(root);

38printf("\n");

39if(rbtree_minimum(root, &i)==0)

40printf("== 最小值: %d\n", i);

41if(rbtree_maximum(root, &i)==0)

42printf("== 最大值: %d\n", i);

43printf("== 树的详细信息: \n");

44print_rbtree(root);

45printf("\n");

46#ifCHECK_DELETE

47for(i=0; i

48{

49delete_rbtree(root, a[i]);

50printf("== 删除节点: %d\n", a[i]);

51if(root)

52{

53printf("== 树的详细信息: \n");

54print_rbtree(root);

55printf("\n");

56}

57}

58#endif

59destroy_rbtree(root);

60}

红黑树的C测试程序

前面已经给出了红黑树的测试程序(rbtree_test.c),这里就不再重复说明。下面是测试程序的运行结果:

1== 原始数据:104030609070205080

2== 前序遍历:301020604050807090

3== 中序遍历:102030405060708090

4== 后序遍历:201050407090806030

5== 最小值:10

6== 最大值:90

7== 树的详细信息:

830(B)isroot

910(B)is30'sleftchild

1020(R)is10'srightchild

1160(R)is30'srightchild

1240(B)is60'sleftchild

1350(R)is40'srightchild

1480(B)is60'srightchild

1570(R)is80'sleftchild

1690(R)is80'srightchild

看我主页简介免费C++学习资源,视频教程、职业规划、面试详解、学习路线、开发工具

每晚8点直播讲解C++编程技术。

相关文章

  • 001 红黑树(二)之 C语言的实现(3)

    红黑树的测试文件(rbtree_test.c): 1/** 2*C语言实现的红黑树(RedBlackTree) 3...

  • STL源码解析(1)-红黑树

    STL源码解析(1)-红黑树 STL容器之红黑树实现 C++中map和set都是基于红黑树的实现, 其迭代器也是红...

  • 实现红黑树, C语言

    感觉linux内核内存管理里面会用到红黑树, 所以就学了一下, 主要是看了B站 码炫课堂 讲解的红黑树视频, 然后...

  • 红黑树

    注:本文对网上一些博客进行详细与修正,并给出C语言实现 红黑树是平衡二叉查找树的一种。为了深入理解红黑树,我们需要...

  • 彻底理解红黑树(二)之 插入

    彻底理解红黑树(一)之 二叉搜索树彻底理解红黑树(二)之 插入彻底理解红黑树(三)之 删除 前言 红黑树的插入情况...

  • 彻底理解红黑树(三)之 删除

    彻底理解红黑树(一)之 二叉搜索树彻底理解红黑树(二)之 插入彻底理解红黑树(三)之 删除 前言 红黑树的删除情况...

  • 红黑树笔记

    红黑树:R-B Tree [toc]参考:红黑树(一)之 原理和算法详细介绍红黑树(五)之 Java的实现 1 简...

  • 数据结构学习_02红黑树平衡操作

    参考文章 : 红黑树原理解析以及Java实现 红黑树(五)之 Java的实现 废话不多说, 直接开始分析 一、红黑...

  • 拿下红黑树

    红黑树 红黑树、2-3树的简单定义: 实现红黑树的基本结构以及添加操作(维护定义,左旋、右旋、颜色反转) 红黑树与...

  • C语言——红黑树

    性质红黑树的节点包括5个属性:color、key、left、right、parent。如果一个节点没有子节点或者父...

网友评论

      本文标题:001 红黑树(二)之 C语言的实现(3)

      本文链接:https://www.haomeiwen.com/subject/ecphcctx.html