zoukankan      html  css  js  c++  java
  • poj2001

    #include <iostream>
    #include <string>
    #define mx 1001
    using namespace std;
    struct treenode
    {
     char data;//结点信息
     int num;//记录从根到此处,结点出现的次数
     bool color;//从根到此处是否是关键字
     treenode *next[26];
     treenode(char c)//初始化结点
     {
      data=c;
      num=1;
      color=false;
      for(int i=0;i<26;i++)
       next[i]=NULL;
     }
    };
    void Insert(treenode *root,string str)//插入单词
    {
     int i;
     treenode *p=root;
     if(p==NULL)//树为空(可以不要)
     {
      p=new treenode('A');
      root = p;
     }
     for(i=0;i<str.length();i++)
     {
      int data=str[i]-'a';
      if (p->next[data]==NULL)//不存在该结点
      {
       p->next[data]=new treenode(str[i]);
      }
      else//若存在该结点,则它的个数加1
      {
       p->next[data]->num++;
      }
      p=p->next[data];
     }
     p->color=true;
    }
    void finds(treenode *root,string str)
    {
     treenode *p=root;
     char print[21];
     int i,j=0;
     if(p==NULL)//(可以不要)
      return ;
     for (i=0;i<str.length();i++)
     {
      int data=str[i]-'a';
      if (p->next[data]->color==true||p->next[data]->num>1)
       print[j++]=str[i];
      else
      {
       print[j++]=str[i];
       break;
      }
      p=p->next[data];
     }
     print[j]='\0';
     cout<<' '<<print<<endl;
    }
    int main()
    {
     string a,str[mx];
     int i=0,j;
     treenode *root=new treenode('A');
     while(cin>>a)
     {
      str[i++]=a;
      Insert(root,a);
     }
     for (j=0;j<i;j++)
     {
      cout<<str[j];
      finds(root,str[j]);
     }
     return 0;
    }

  • 相关阅读:
    设置linux session 编码
    在masterpage中添加对usercontrol的引用
    首页的sitecontent地址
    iis的路径
    设置repeater每行多少个的方法
    updatepannel的使用
    取caml查询结果的前多少行
    设置视频自动播放
    网站集与网站
    notepad++ 死机 找到没保存的文件
  • 原文地址:https://www.cnblogs.com/qijinbiao/p/2181743.html
Copyright © 2011-2022 走看看