论文网
English Papers
万事OK网
发表论文
 
 首页 > IT文章 > 程序设计 >
字典树实现源代码

[科技论文网] http://www.scipapers.com    2007-12-01  

    字典树实现源代码

    由字母a~z所组成的字符串的一个集合中,各个字符的长度之和为n。设计一个O(n)时间的算法,将这个集合中所有字符串依字典进行排序。注意,这里可能存在非常长的字符串。  
     
    #include <stdio.h>
    #include <malloc.h>

    typedef  struct tire
    {
       struct tire *next[26];
       char date;
       int cnt;
    }*_tire;

    void init_tire(_tire root, char *string)
    {
        _tire s;
        s=root;
       
        while(*string!='\0')
        {
           if(s->next[*string - 'a']==NULL)
           {
              s->next[*string - 'a'] = (_tire)malloc(sizeof(struct tire));
              (s->next[*string - 'a'])->date = *string;
              s = s->next[*string - 'a'];
              for(int i=0;i<26;i++)
              {
                  s->next[i] = NULL;
              }
           }
           else
           {
              s = s->next[*string - 'a'];
           }
           string++;
        }
        s->cnt=1;
    }

    void print(_tire root, char *s, int i)
    {
        int j;
        s[i] = root->date;

        if(root->cnt==1)
        {
            s[i+1] = 0;
            puts(s);
        }
       
        for(j=0;j<26;j++)
        {
            if(root->next[j]!=NULL)
            {
               print(root->next[j],s,i+1);
            }
        }

    }

    int main()
    {
        _tire root;
        int m,i;
        char s[265];
       
        root = (_tire)malloc(sizeof(struct tire));
        puts("输入字符串个数:");
        for(i=0;i<26;i++)
        {
           root->next[i]=NULL;
        }
        scanf("%d",&m);
        getchar();
        while(m--)
        {
           gets(s);
           init_tire(root,s);
        }
        puts("\n依字典排序后:");
        for(i=0;i<26;i++)
        {
           if(root->next[i] != NULL)
           {
              print(root->next[i],s,0);
           }
        }
        return 0;
    }

        来源:

声明:本文由网友推荐或作者提交,版权归原作者所有,刊登此文仅为传播知识,展示研究成果,提高文章引用率。未经原作者授权,禁止用于任何形式的商业行为。科技论文网倡导尊重知识、尊重劳动、保护原创、知识共享。由于部分论文文章来于网络,文章作者不祥,请相关的原创作者与我们联系,以便加上您的署名。

  
字典树实现源代码
下面没有链接了     Java和C#的Hash算法
最新论文
·[程序设计]字典树实现源代码
·[程序设计]Java和C#的Hash算法
·[程序设计]hash表及如何选择hash函数
·[程序设计]一致性哈希(Consistent Hash
·[程序设计]对冒泡算法的改进
·[程序设计]杨辉三角算法源码
·[程序设计] C脚本递归算法-计算八皇后问题
·[程序设计]经典算法-算术表达式求值
·[程序设计]顺序表上的插入算法
·[程序设计]并查集的最小生成树算法
 
 

搜索论文

Google
论文分类

论文网 论文发表网 论文 免费论文网 找论文网 毕业论文 中国论文网 英语论文 百度论文 聘教网 易搜
 免费发布论文    中国论文网 2008版权所有  业务联系:pinjiao@126.com