小代码 向高手学习基树

发布时间:2020-09-23 09:46:29 作者:wzdouban
来源:网络 阅读:330
 /*****************
 运行 环境:http://www.anycodes.cn/zh/
 内容: 基数树
 
 *******************/
 #include <stdio.h>
#include <stdlib.h>
typedef struct RadixNode {
    char *str;
     struct RadixNode *lchild, *rchild; 
} RadixNode;
void radix_insert(RadixNode *node, char *str)
{
     int i;
     for (i = 0; str[i] != '\0'; i++) {               
          if (str[i] == '0') {
               if (node->lchild == NULL)
                    node->lchild =(RadixNode*) calloc(sizeof(RadixNode), 1);
               node = node->lchild;               
          } 
          else {
               if (node->rchild == NULL)
                    node->rchild = (RadixNode*)calloc(sizeof(RadixNode), 1);
               node =  node->rchild;
          }               
     }
     node->str = str;
}

void radix_preorder_walk(RadixNode *node)
{
     if (node != NULL) {
          if (node->str != NULL)
               printf("%s\n", node->str);
          radix_preorder_walk(node->lchild);
          radix_preorder_walk(node->rchild);
     }
}

int main(void)
{
     RadixNode *root = (RadixNode*)malloc(sizeof(RadixNode));
     char ss[5][5]={"01","011","101","1010","1011"};
     radix_insert(root, ss[0]); 
     radix_insert(root, ss[1]); 
     radix_insert(root, ss[2]); 
     radix_insert(root, ss[3]); 
     radix_insert(root, ss[4]); 
     radix_preorder_walk(root);
     return 1;
}

原文http://blog.csdn.net/dc_726/article/details/7391988

修改消除了警告与一定编译器造成的错误



推荐阅读:
  1. 小代码 向原文学习 对AVL树的4种情况 用字母标记整理
  2. 面试web前端的小技巧有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

小代码 高手

上一篇:mac安装python的详细步骤

下一篇:python如何导入模块

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》