如何用算法,生成字典?
比如:aa,ab,ac,ad.........有没有好点的递归算法可以轻松实现.大家讨论一下.

解决方案 »

  1.   

    楼主为什么要递归算法呢?
    用For循环不好吗?
      

  2.   

    aa,ab,ac,ad.........a0,a1...a9............a+,a-
    这种算法生成的字典有什么用?你如果只生成数字组合还好点。
    你干脆找个英文单词表还强一些;
      

  3.   

    我写一个伪算法吧
    void generate(int length, char *str)
    //length是生成字典序列的长度.
    //str是当前字典序列
    {
        if (length == 0) 
        {
            cout << str << endl;//输出字典序列
            return;
         }
         for (int i = 0; i < 字符个数; i++) 
         {
              strcat(str, i + 起始字符);
              generate(length - 1, str);
              去掉str中的最后一个字符;
         }
    }
       
             
      

  4.   

    #include <iostream.h>
    #include <string.h>void generate(int length, char *str);
    void generate(int length, char *str)
    {
    if (length == 0)
    {
    cout << str << endl;
    return;
    }
    for (int i = 0; i < 10; i++)
    {
    char buff[2];
    char *tail; buff[0] = '0' + i;
    buff[1] = '\0'; strcat(str, buff);
    generate(length - 1, str);
    tail = str;
    while (*tail != '\0')
    tail++;
    tail--;
    *tail = '\0';
    }
    }void main(void)
    {
    char str[20] = "";
    int length = 3;
    generate(length, str);
    }