Q:已知前缀码如右图所示,求0/1字符串“001011101001011001”相对应的译码。

a b c
1 01 001

 

#include<iostream>
#include<cstdio>
using namespace std;

int f(char *str,int n) {
	int i=0;
	while(i<18) {
		switch(str[i]) {
			case '1': printf("a"); break;
			case '0': {
				i++;
				switch(str[i]) {
					case '1':printf("b"); break;
					case '0': {
						i++;
						switch(str[i]) {
							case'1':printf("c"); break;
						}
						break;
					}
				
				
				}
					break;
			}
		}
		i++;
	}
}
int main()
{
	char str[18]={001011101001011001};
	f(str,18);
	return 0;
}

  出现了如下的结果:

 

posted on 2017-04-22 22:09  王小东大将军  阅读(323)  评论(1编辑  收藏  举报