POJ1760

来源:互联网 发布:linux io性能分析 编辑:程序博客网 时间:2024/05/17 22:13

利用STL map的元素有序的特性使得节点都按字典序排好。

#include <iostream>#include <map>#include <cstdio>#include <string>#include <cstring>using namespace std;const int N=1111;struct node{map<string,int>m;char s[11];}nod[20000];void dfs(int u,int dep){for(map<string,int>::iterator i=nod[u].m.begin();i!=nod[u].m.end();i++){for(int j=1;j<=dep;j++)putchar(' ');printf("%s\n",(i->first).c_str());dfs(i->second,dep+1);}}int main(){int n;scanf("%d",&n);char c[N];int i,j,id=0,num[N];for(i=1;i<=n;i++){scanf("%s",c);int end=0;num[++end]=0;for(j=0;c[j];j++)if(c[j]=='\\')c[j]=0,num[++end]=j+1;int p=0;for(j=1;j<=end;j++){if(!nod[p].m.count(c+num[j]))nod[p].m[c+num[j]]=++id,strcpy(nod[id].s,c+num[j]);p=nod[p].m[c+num[j]];}}dfs(0,0);return 0;}


0 0
原创粉丝点击