281-C++ T树

1.T树也叫键树,键树也叫数字查找树(Digital Search Trees),也叫字典树
在这里插入图片描述
下图就是一个T树
在这里插入图片描述
2.T树中有两种节点,一个是分支节点,一个是元素节点,如果指向的是分支节点,继续比较,如果指向的是元素节点,直接比较

T树只能插入不能删除,删除很麻烦

3.每个分支节点的下标从1开始都是在0下标的基础上加了一个A~Z的字母,比如说0下标是CHA,那么1下标就是CHAA,2下标就是CHAB…以此类推

0下标一定是元素节点而不是分支节点

4.T树不允许插入重复元素

5.T树为什么不能删除元素?

因为对于elementa和elementb两个元素来说,插入的时候需要不断的建立分支节点,如果要删除的话,需要把所有的分支节点全部删除,如果又要插入,又要不断的建立分支节点,这样会对内存进行不断的操作,效率就会降低

typedef enum {
    BRCH = 0, ELEM = 1 }NodeType;//分支类型或者元素类型
const int LETLEN = 27;//从下标1开始,下标0有用
const int MaxKeySize = 25;//关键码的长度,最长英文单词长度是25
struct TrieNode;
typedef struct
{
   
	char ch[MaxKeySize];//存放关键码,就是字符串
	int currentSize;//关键码的长度
}KeyType;
typedef struct
{
   
	KeyType key;//关键码
	void* recptr;//指向数据
}ElemType;
typedef struct
{
   
	TrieNode *link[LETLEN];
}BrchType;
struct TrieNode
{
   
	NodeType utype;//类型
	union
	{
   
		ElemType item;
		BrchType brch;
	};
};
class 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值