多叉树的前序遍历_多叉树的创建和遍历(为Trie树做准备)

trie树实际上是一种多叉树的应用,Trie树是用来解决,搜索引擎中,输入前缀可以给出提示词的非常好的解决方案

在实现trie书算法以前,我们先回顾温习下,多叉树的实现和遍历(对于我们trie树的实现和便利帮助很大),这里就不说普通二叉树,因为原理一样,但相对简单

下面是算法实现,这个算法参考了这本书中的描述和定义,用了一个很节省空间的结构定义

并没有在父节点中存储所有的子节点,而是存储了节点的链表,一般叫做二叉链表法,这样算法看起来非常像二叉树了

#include

#include

#define maxsize 100

typedef struct node

{

char *data;

struct node *first_child,*next_sibling;//fc是第一个孩子,nb是fc的临节点

} tree;

/**

a

/ \ \

b c d

/\ \

e f g

创建出来的树结构如上

*/

tree *insertTree(char *ch, tree *parent, tree *pre_sibling) {

tree *child = (tree *)malloc(sizeof(tree));

child->data = ch;

if (parent != NULL) parent->first_child = child;

if (pre_sibling != NULL) pre_sibling->next_sibling = child;

child->first_child = NULL;

child

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值