字典树的操作
来源:互联网 发布:visual studio for mac 编辑:程序博客网 时间:2024/05/20 15:37
#include <iostream>#include <cstdlib>#include <string>using namespace std;#define MAX 26typedef struct _Trie{ int num; struct _Trie *next[MAX];}Trie,*PTrie;PTrie root;void InsertTrie(string str){int len=str.length();int i,j,pos;PTrie p=root;PTrie q;for(i=0;i<len;i++){ pos=str[i]-'a'; if(p->next[pos]==NULL) { q=(PTrie)malloc(sizeof(Trie)); q->num=1; for(int j=0;j<MAX;j++) { q->next[j]=NULL; } p->next[pos]=q; p=p->next[pos]; } else { p->next[pos]->num++; p=p->next[pos]; } }p->num=0;}//int FindTrie(string str){ int i,pos; int len=str.length(); PTrie p=root,q; for(i=0;i<len;i++) { pos=str[i]-'a';if(p->next[pos]==NULL){ return -1;//代表没有这样的前缀}else{p=p->next[pos];} } return p->num;}int main(){root=(PTrie)malloc(sizeof(Trie));root->num=1;for(int i=0;i<MAX;i++){root->next[i]=NULL;}string str1="abc";string str2="abcd";string str3="abd";string str4="b";string str5="bcd";string str6="efg";string hig="hig";InsertTrie(str1);InsertTrie(str2);InsertTrie(str3);InsertTrie(str4);InsertTrie(str5);InsertTrie(str6);if(FindTrie("ab")==-1)cout<<"没有以这个为前缀的字符串"<<endl;elsecout<<"以这个子串为前缀的字符串个数为"<<FindTrie("ab")<<endl; return 0;}
0 0
- 字典树的操作
- 字典树的基本操作
- 实现字典树Trie的基本操作
- Python的字典操作
- Python的字典操作
- 字典的操作
- python的{}字典操作
- Python的字典操作
- Python的字典操作
- Python的字典操作
- Python的字典操作
- Swift的字典操作
- Python的字典操作
- 字典的相关操作
- Python的字典操作
- python 字典的操作
- 数据字典的操作
- 字典的基本操作
- 1073. Scientific Notation (20)【字符串操作】——PAT (Advanced Level) Practise
- 利用Theano理解深度学习——Logistic Regression
- C++学习笔记39——重载输入输出操作符
- LeetCode 88:Merge Sorted Array
- 利用Theano理解深度学习——Multilayer Perceptron
- 字典树的操作
- c#中字体的用法与代码
- 设计模式(11)-组合模式
- iOS开发中常用到的SVN命令(持续更新)
- Map-Reduce程序设计
- WebGoat之HTTP Spliting(拆分)过程及总结分析 - 2016.01.02
- MATLAB中多行注释的三种方法
- 在VirtualBox虚拟机中安装Linux 6.2 - 配置
- PCL-泊松重建