码迷,mamicode.com
首页 > 其他好文 > 详细

小代码 向高手学习基树

时间:2016-06-17 17:45:55      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:小代码

 /*****************
 运行 环境: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

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



小代码 向高手学习基树

标签:小代码

原文地址:http://wzsts.blog.51cto.com/10251779/1790160

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!