数的创建

//字典查找树的实现
#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树 (字典查找树)的创建相关推荐

  1. 字典树(查找树)入门

    字典树 树状结构保存字符串,查找快,判断前缀快. 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种. 例题: link. 代码(指针) #include <iostream> ...

  2. 数据结构之平衡树:2-3查找树的介绍——16

    平衡树(AVL tree) 引入 之前学习的树,都不是平衡的,查找时需要一个一个往内比较,一个结点只储存一个值,数据量存储较大,树的深度会非常的深,导致数据查询时效率会十分的低,本次学习的平衡树就能解 ...

  3. 算法(第4版) Chapter 5.2 单词查找树

    Algorithms Fourth Edition Written By Robert Sedgewick & Kevin Wayne Translated By 谢路云 Chapter 5 ...

  4. 数据结构 多路查找树 ---------B树和B+树的简单介绍

    参考链接:微信公众号 程序员小灰 https://mp.weixin.qq.com/s/rDCEFzoKHIjyHfI_bsz5Rw https://mp.weixin.qq.com/s/jRZMMO ...

  5. 各种树:trie树、B树、B-树、B+树、B*树

    红黑树rbtree 二叉排序树 map 就是采用红黑树存储的,红黑树(RB Tree)是平衡二叉树,其优点就是树到叶子节点深度一致,查找的效率也就一样,为logN.在实行查找,插入,删除的效率都一致, ...

  6. 【转】各种树:trie树、B树、B-树、B+树、B*树

    红黑树rbtree 二叉排序树 map 就是采用红黑树存储的,红黑树(RB Tree)是平衡二叉树,其优点就是树到叶子节点深度一致,查找的效率也就一样,为logN.在实行查找,插入,删除的效率都一致, ...

  7. 前缀树(字典树,单词查找树,Trie树)

    参考网址:https://blog.csdn.net/u013949069/article/details/78056102?utm_source=copy 概述 前缀树又名字典树,单词查找树,Tri ...

  8. 字典树(单词查找树、Trie)

    文章目录 单词查找树 1 基本概念 2 字典树的应用 3 字典树基本操作的实现 4 参考资料 单词查找树 1 基本概念   百度百科对字典树的介绍为:是一种树形结构,是一种哈希树的变种.   < ...

  9. Algorithm:树结构(二叉树/多路查找树/字典树)的简介、具体结构(FBT/CBT/BST/BBT/Heap/Huffman、B树/B+树/R树、字典树)及其运算(增删查/遍历/旋转)、代码实现

    Algorithm:树结构(二叉树/多路查找树/字典树)的简介.具体结构(FBT/CBT/BST/BBT/Heap/Huffman.B树/B+树/R树.字典树)及其运算(增删查/遍历/旋转).代码实现 ...

最新文章

  1. [高中作文赏析]感受冬天
  2. 三维计算视觉研究内容概述
  3. Zynq器件的时钟系统
  4. 福建师范大学计算机组成原理期末试卷,福建师范大学2020年8月课程考试《计算机组成原理》作业考核试题...
  5. 老版本fortran语言 内存无效_编程语言的分类
  6. Bookshelf 2 简单DFS
  7. computed set 自定义参数_深入理解vmodel之自定义组件用法
  8. python爬取CVPR2018关于detection的论文
  9. 【332】Machine Learning
  10. bzoj 1024 SCOI2009 生日快乐
  11. MySQL备份与恢复详解(热备、冷备等相关术语解释)
  12. WINDOWS PHONE死于自己不兼容
  13. 如何在信用卡反欺诈检测中使用人工智能和机器学习
  14. 数学建模线性规划实例及详细解答(MATLAB代码)
  15. c语言中tmod,单片机C语言请教——有关TMOD
  16. 时间序列预测 | Python实现GAN时间序列数据生成建模
  17. 抛物线交点式公式_抛物线公式大全
  18. 国家代码查询表(ISO 3166 Codes A2)
  19. Linux可以打开cdr文件吗,CDR是什么格式
  20. Consumer消息拉取和消费流程分析

热门文章

  1. 字符数组的用法及字符串处理函数的用法
  2. 分布式资本宣布孵化成立Hashgard项目
  3. 重视网络安全,从部署SSL证书开始
  4. 手机验证码注册,登录
  5. JS 返回上一页及返回上一页并刷新
  6. windows下安装使用docker(以网易蜂巢为仓库)
  7. 【数据分析】用户行为分析
  8. misaka and last order SCU - 4489 (筛法的灵活应用)
  9. 自写jQuery插件,实现简单网页遮罩层/弹出层功能,兼容IE6、IE7
  10. 消费者驱动的Pact和Spring Boot测试