hdu|hdu 1250 字典树+内存释放
http://acm.hdu.edu.cn/showproblem.php?pid=1251
/*
第一次做字典树,找了一道比较简单的。
建树的时候用到了new动态分配内存,刚好学C++的时候老师讲到了这一点,动态内存有申请就要有释放。
但是在网上看了好多代码都没有清理内存。虽然能通过题目测试,但是却反映了一个编程态度的问题。
在此告诫自己,也希望大家都能端正自己的态度,不要为了AC而AC
【hdu|hdu 1250 字典树+内存释放】*/
#include"iostream"
#include"cstring"
#include"cstdlib"
using namespace std;
//结点结构
struct Node
{
int ncount;
Node* Next[26];
};
Node* root;
//初始化结点
void Init(Node* t)
{
memset(t->Next,NULL,sizeof(t->Next));
t->ncount=0;
}
//插入新单词
void Insert(char* s)
{
int i,k;
Node* p=root;
Node* newnode;
for(i=0;
iNext[k]==NULL){
newnode=new Node;
Init(newnode);
p->Next[k]=newnode;
p=newnode;
p->ncount++;
}
else{
p=p->Next[k];
p->ncount++;
}
}
}
//搜索单词
int Search(char* s)
{
int i,k;
Node* p=root;
for(i=0;
iNext[k]==NULL)
return 0;
else
p=p->Next[k];
}
return p->ncount;
}
//释放内存
void Freedom(Node* p)
{
int i;
for(i=0;
i<26;
i++){
if(p->Next[i]!=NULL)
Freedom(p->Next[i]);
}
delete p;
}
int main()
{
char s[11];
root=new Node;
Init(root);
while(gets(s),s[0]!='\0'){
Insert(s);
}
while(gets(s)){
int ans=Search(s);
cout<
推荐阅读
- 编写字典程序
- 怎样把一个字典的数据添加到另一个字典中()
- [python]字典中的方法get和setdefault方法
- 6.Python之字典的基础
- 采集数据项目后端总结(二)—字典管理
- HDU 5528【2015长春现场赛 B】 Count a * b
- hdu5289|hdu5289 Assignment(极差<k的子区间数量,单调性证明+双指针+单调队列)
- hdu|2016 Multi-University Training Contest 1 C Game(hdu 5725)
- HDU-5628-Clarke-and-math-狄利克雷卷积
- HDU 5519 Kykneion asma(沈阳站K题&&DP+容斥)