poj Shortest Prefixes ——trie树、字典树,基础!!
来源:互联网 发布:指画用什么软件 编辑:程序博客网 时间:2024/04/28 18:51
我的第一道tire树,很基础,很好!!!!!!!!!
#include<iostream>
using namespace std;
#define max 26
char ss[1005][50];
char tt[50];
struct node//初始tire树
{
int num;//标记是否为相同前缀最后字符
node *next[max];//后继结点
};
node *root; //建立根节点的引用
void trie()//初始tire 树
{
int i,j;
root=new node;//为根节点开辟内存
root->num=0;
for(int i=0;i<max;i++)
root->next[i]=NULL;
}
void insert(char ss[])//插入操作
{
node *p=root,*t;//p指向当前节点,t用来开辟内存
for(int i=0;ss[i];i++)//将每个字符存起来的过程
{
if(p->next[ss[i]-'a']==NULL)//当p指向为空的时候,需要开辟新的节点
{
t=new node;
t->num=0;
for(int i=0;i<max;i++)
t->next[i]=NULL;
p->next[ss[i]-'a']=t;//接上新的节点
}
p=p->next[ss[i]-'a'];//p指向下一个节点
p->num++;//
}
}
void search(char ss[])//查找
{
node *p=root;//p指向根节点
int t=0;
for(int i=0;ss[i];i++)
{
p=p->next[ss[i]-'a'];//p指向下一结点
if(p->num>1)
{
tt[t]=ss[i];
t++;
}
if(p->num==1)
{
tt[t]=ss[i];
tt[t+1]='\0';
return;
}
}
tt[t]='\0';//这个是防止上面的p->num都是大于1的
return ;
}
int main()
{
trie();
int t=0;
while(cin>>ss[t])
{
insert(ss[t]);
t++;
}
for(int i=0;i<t;i++)
{
printf("%s ",ss[i]);
search(ss[i]);
printf("%s\n",tt);
}
// system("pause");
return 0;
}
- poj Shortest Prefixes ——trie树、字典树,基础!!
- POJ 2001 Shortest Prefixes 字典树Trie
- POJ 2001 Shortest Prefixes(字典树Trie)
- POJ 2001 Shortest Prefixes(字典树Trie)
- POJ 2001 Shortest Prefixes 【 trie树(别名字典树)】
- POJ 2001 Shortest Prefixes (字典树 TRIE)
- zju2346 Shortest Prefixes(字典树 trie)
- kyeremal-poj2001-Shortest Prefixes-字典树trie
- Shortest Prefixes——Trie树
- POJ 2001 ——Shortest Prefixes 字典树的应用
- poj 2001 Shortest Prefixes Trie树
- poj 2001 Shortest Prefixes(Trie树)
- poj 2001 Shortest Prefixes Trie树
- poj 2001 Shortest Prefixes(trie树)
- POJ 2001 - Shortest Prefixes (Trie树)
- poj 2001 Shortest Prefixes(trie树)
- poj -- 2001 Shortest Prefixes (Trie 树)
- POJ-2001 Shortest Prefixes(Trie树)
- 关于SD卡的故事
- Javascript RegExp正则表达式学习笔记
- WinForm程序中未处理异常的解决方法
- EL表达式
- fleep滑动切换tab(切换带动画)
- poj Shortest Prefixes ——trie树、字典树,基础!!
- Oracle基础学习(1)基础语法
- 软件架构设计类书籍网站收集
- 程序员面试题精选100题(57)-O(n)时间的排序
- 前途自己把握
- HDU 2222
- 如何删除 Windows.old 文件夹?
- Oracle学习(2)单行函数
- HLA规则介绍(翻译)