/*****************
运行 环境: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
修改消除了警告与一定编译器造成的错误
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。