Tried树 (字典查找树)的创建
数的创建
//字典查找树的实现
#include<iostream>
using namespace std;
struct Tried
{int count;//用来标记该节点是个可以形成一个单词,如果count!=0,则从根节点到该节点的路径可以形成一个单词Tried* next[26];
};
Tried* createNode()
{Tried* node = new Tried();node->count = 0;memset(node->next,0,sizeof(node->next));return node;
}
//向树中插入单词
void insert(Tried* root,char* word)
{if (root == NULL || *word == '\0')return;int len = strlen(word);Tried* node = root;char* p = word;while(*p!='\0'){if (node->next[*p - 'a'] == NULL){node->next[*p - 'a'] = createNode();}node = node->next[*p-'a'];p++;}node->count++;
}
//查找单词
bool search(Tried * root,char* word)
{if (root==NULL||*word=='\0')return false;Tried* node = root;char* p = word;while (*p!='\0'){if (node->next[*p - 'a'] == NULL)break;node = node->next[*p-'a'];p++;}if (*p != '/0')return false;else{if (node->count != 0)return true;else return false;}
}
//返回单词查询次数
int count(Tried* root,char* word)
{if (root == NULL || *word == '\0')return 0;char* p = word;Tried* node = root;while (*p!='\0'){node = node->next[*p-'a'];p++;}return node->count;
}
主函数
int main()
{Tried* root = createNode();char word[][10] = {"test", "study", "open", "show", "shit", "work", "work", "test", "tea", "word", "area", "word", "test", "test", "test"};//用word创建树for (int i = 0; i < 15;i++){insert(root, word[i]);}for (int i = 0; i < 15; i++){cout << "the word " << word[i]<< " appears" << count(root, word[i]) << " times in the trie-tree" << endl;}//查找树中没有的单词char s[10] = "testit";if (!search(root, s))cout << " the word testit isn't appear in the tree" << endl;return 0;
}
Tried树 (字典查找树)的创建相关推荐
- 字典树(查找树)入门
字典树 树状结构保存字符串,查找快,判断前缀快. 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种. 例题: link. 代码(指针) #include <iostream> ...
- 数据结构之平衡树:2-3查找树的介绍——16
平衡树(AVL tree) 引入 之前学习的树,都不是平衡的,查找时需要一个一个往内比较,一个结点只储存一个值,数据量存储较大,树的深度会非常的深,导致数据查询时效率会十分的低,本次学习的平衡树就能解 ...
- 算法(第4版) Chapter 5.2 单词查找树
Algorithms Fourth Edition Written By Robert Sedgewick & Kevin Wayne Translated By 谢路云 Chapter 5 ...
- 数据结构 多路查找树 ---------B树和B+树的简单介绍
参考链接:微信公众号 程序员小灰 https://mp.weixin.qq.com/s/rDCEFzoKHIjyHfI_bsz5Rw https://mp.weixin.qq.com/s/jRZMMO ...
- 各种树:trie树、B树、B-树、B+树、B*树
红黑树rbtree 二叉排序树 map 就是采用红黑树存储的,红黑树(RB Tree)是平衡二叉树,其优点就是树到叶子节点深度一致,查找的效率也就一样,为logN.在实行查找,插入,删除的效率都一致, ...
- 【转】各种树:trie树、B树、B-树、B+树、B*树
红黑树rbtree 二叉排序树 map 就是采用红黑树存储的,红黑树(RB Tree)是平衡二叉树,其优点就是树到叶子节点深度一致,查找的效率也就一样,为logN.在实行查找,插入,删除的效率都一致, ...
- 前缀树(字典树,单词查找树,Trie树)
参考网址:https://blog.csdn.net/u013949069/article/details/78056102?utm_source=copy 概述 前缀树又名字典树,单词查找树,Tri ...
- 字典树(单词查找树、Trie)
文章目录 单词查找树 1 基本概念 2 字典树的应用 3 字典树基本操作的实现 4 参考资料 单词查找树 1 基本概念 百度百科对字典树的介绍为:是一种树形结构,是一种哈希树的变种. < ...
- Algorithm:树结构(二叉树/多路查找树/字典树)的简介、具体结构(FBT/CBT/BST/BBT/Heap/Huffman、B树/B+树/R树、字典树)及其运算(增删查/遍历/旋转)、代码实现
Algorithm:树结构(二叉树/多路查找树/字典树)的简介.具体结构(FBT/CBT/BST/BBT/Heap/Huffman.B树/B+树/R树.字典树)及其运算(增删查/遍历/旋转).代码实现 ...
最新文章
- [高中作文赏析]感受冬天
- 三维计算视觉研究内容概述
- Zynq器件的时钟系统
- 福建师范大学计算机组成原理期末试卷,福建师范大学2020年8月课程考试《计算机组成原理》作业考核试题...
- 老版本fortran语言 内存无效_编程语言的分类
- Bookshelf 2 简单DFS
- computed set 自定义参数_深入理解vmodel之自定义组件用法
- python爬取CVPR2018关于detection的论文
- 【332】Machine Learning
- bzoj 1024 SCOI2009 生日快乐
- MySQL备份与恢复详解(热备、冷备等相关术语解释)
- WINDOWS PHONE死于自己不兼容
- 如何在信用卡反欺诈检测中使用人工智能和机器学习
- 数学建模线性规划实例及详细解答(MATLAB代码)
- c语言中tmod,单片机C语言请教——有关TMOD
- 时间序列预测 | Python实现GAN时间序列数据生成建模
- 抛物线交点式公式_抛物线公式大全
- 国家代码查询表(ISO 3166 Codes A2)
- Linux可以打开cdr文件吗,CDR是什么格式
- Consumer消息拉取和消费流程分析