Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2508845
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2011-03-23 18:04:40

给定一个前缀译码表如下:
a     b    c 
1     01   001
对字符进行译码操作。
  1. #include <stdio.h>

  2. void decode(char *str, int n);

  3. int main(int argc, char* argv[])
  4. {
  5.   char str[18] = "001011101001011001";
  6.   decode(str,18);
  7.   return 0;
  8. }

  9. void decode(char *str, int n)
  10. {
  11.   int i = 0;
  12.   while(i < n)
  13.   {
  14.     switch(str[i])
  15.     {
  16.       case '1': printf("a"); break;
  17.       case '0':
  18.       {
  19.         i++;
  20.         switch(str[i])
  21.     {
  22.             case '1': printf("b"); break;
  23.             case '0':
  24.         {
  25.                     i++;
  26.                           switch(str[i])
  27.              {
  28.                        case '1': printf("c"); break;
  29.                           }
  30.                           break;
  31.                 }
  32.          }
  33.          break;
  34.       }
  35.     }
  36.     i++;
  37.   }
  38. }
阅读(1247) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~