Monday, February 1, 2010

Shannon fano algorithm implementation coding

#include
#include
#include
struct node
{
	char sym;
	float pro;
	int arr[40];
	int top;
}s[40];
typedef struct node node;
int main()
{
	char *p,tchar,str[60],symbol[30]={""};
        char find[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n'
,'o','p','q','r','s','t','u','v','w','x','y','z'};
	int flag,start,temp,*v,count[3],scount[30]={0},slen,i,len=0,numlen,j,fchar[30]={0},k,flen;
	float *vf;
	void shannon(int l,int h,node s[]);
	clrscr();
	numlen=strlen(find);
	printf("enter string :");
	scanf("%[^\n]",str);
	len=strlen(str);
	i=0;
	while(i{
	 for(j=0;j {
		if(str[i]==find[j])
		{
		 fchar[j]++;         //increment count for character
		}
	 }
	i++;
	}
	str[i]='\0';
	i=0;
	for(k=0;k{

	 if(fchar[k]!=0)
	 {
	   symbol[i]=find[k];
	   scount[i]=fchar[k];
	   i++;
	 }
	}
	slen=i;
	for(i=0;i{
	  for(j=0;j  {
		  if(scount[i]>scount[j])
		  {
		   //swap value
		   temp=scount[i];
		   scount[i]=scount[j];
		   scount[j]=temp;
		   //swap char
		   tchar=symbol[i];
		   symbol[i]=symbol[j];
		   symbol[j]=tchar;
		  }
	  }
	}
	printf("\nsymbol count\n");
	for(j=0,i=slen-1;j{
	  printf("%c      %d\n",symbol[j],scount[j]);
	  *(vf+j)=(float)scount[j]/100;
	  s[i].sym=symbol[j];
	  s[i].pro=*(vf+j);
	}

	for(i=0;is[i].top=-1;
	shannon(0,slen-1,s);
	//code bit logic
	printf("---------------------------------------------------------------");
	printf("\n\n\n\tSymbol\tProbability\tCode");
	printf("---------------------------------------------------------------");
	printf("\n\n\n\tSymbol\tProbability\tCode");
	for(i=slen-1;i>=0;i--)
	{
		printf("\n\t%c\t%f\t",s[i].sym,s[i].pro);
		for(j=0;j<=s[i].top;j++)
		printf("%d",s[i].arr[j]);
	}
	printf("\n---------------------------------------------------------------");
	getch();
	return 0;
}
void shannon(int l,int h,node s[])
{
	float pack1=0,pack2=0,diff1=0,diff2=0;
	int i,d,k,j;
	if((l+1)==h || l==h || l>h)
	{
		if(l==h || l>h)
		return;
		s[h].arr[++(s[h].top)]=0;
		s[l].arr[++(s[l].top)]=1;
		return;
	}
	else
	{
		for(i=l;i<=h-1;i++)
		pack1=pack1+s[i].pro;
		pack2=pack2+s[h].pro;
		diff1=pack1-pack2;
		if(diff1< 0)
		diff1=diff1*-1;
		j=2;
		while(j!=h-l+1)
		{
			k=h-j;
			pack1=pack2=0;
			for(i=l;i<=k;i++)
			pack1=pack1+s[i].pro;
			for(i=h;i>k;i--)
			pack2=pack2+s[i].pro;
			diff2=pack1-pack2;
			if(diff2< 0)
			diff2=diff2*-1;
			if(diff2>=diff1)
			break;
			diff1=diff2;
			j++;
		}
		k++;
		for(i=l;i<=k;i++)
		s[i].arr[++(s[i].top)]=1;
		for(i=k+1;i<=h;i++)
		s[i].arr[++(s[i].top)]=0;
		shannon(l,k,s);
		shannon(k+1,h,s);
	}
}

6 comments:

  1. wt a mind yr..............

    ReplyDelete
    Replies


    1. Diệp Âm Trúc vội vã lắc đầu nói:
      - Đương nhiên không phải. Hương Loan học tỉ, ngươi đừng hại ta. Ngươi chính là công chúa của đế quốc, con gái duy nhất của Tây Nhĩ Duy Áo thúc thúc. Nếu mà ta mang ngươi đi, lại là đi chỗ tối nguy hiểm là Cực Bắc Hoang Nguyên. Tây Nhĩ Duy Áo thúc thúc biết được, có thể dễ dàng tha cho ta sao? Cho dù là Phí Tư Thiết Lạp ở đấy ta cũng không cách gì nói rõ được! Ngươi đừng làm khó ta nữa.

      Hương Loan trợn mắt nhìn Diệp Âm Trúc mà không nói ra lời. Nàng không thể không thừa nhận, Diệp Âm Trúc nói không sai, là công chúa của đế quốc, nàng sớm đã không có dạng tự do của nữ hài bình thường, muốn trốn đi hoàn toàn không phải việc giản đơn như vậy. Vạn nhất để người ngoài biết, ấy là việc lớn làm mất quốc thể. Trừ phi là phụ thân phê chuẩn, nhưng, phụ hoàng sao có thể để mình đi đến thú nhân quốc nguy hiểm ấy? Nếu mà tđồng tâm
      game mu
      cho thuê nhà trọ
      cho thuê phòng trọ
      nhac san cuc manh
      số điện thoại tư vấn pháp luật miễn phí
      văn phòng luật
      tổng đài tư vấn pháp luật
      dịch vụ thành lập công ty
      http://we-cooking.com/
      chém gió
      trung tâm tiếng anhự mình phát sinh vấn đề gì, lập tức sẽ thành con tin để thú nhân bắt chẹt Mễ Lan đế quốc.

      Lúc này, Hải Dương ở bên cạnh mở miệng,
      - Hương Loan tỉ, tỉ đừng làm khó Âm Trúc bọn họ. Tỉ xác thực không thích hợp để đi. Thân phận của tỉ rất

      Delete
  2. put this code in java _|_

    ReplyDelete
  3. put this code in matlab...............

    ReplyDelete
  4. Can u plz explain the shannon func???...will b a great hlp.. tia..

    ReplyDelete

  5. phương pháp tu luyện của một loại công pháp tên là Đại tự tại Tu La

    thuật. Công pháp đó xuất thân từ Tà Ma tông.

    Ở Hỏa Đốt quốc, Tà Ma tông là một môn phái ma đạo. Bọn họ tu luyện một

    loại công pháp khiến cho mọi người nghe thấy đều hoảng sợ đó là Đại tự

    tại Tu La thuật. Công pháp này tổng cộng có sáu tầng. Người tu luyện
    học kế toán tại hải phòng
    trung tâm kế toán tại hoàng mai

    học kế toán tại bắc giang
    học kế toán tại thanh xuân
    http://kylin1st.com
    học kế toán thực hành
    http://cattleyavn.com
    học kế toán tại bắc ninh
    dịch vụ báo cáo tài chính
    kế toán cho giám đốc quản lý
    trung tâm kế toán tại quảng ninh
    học kế toán tại bắc ninh
    học kế toán tại hà đông

    công pháp đó chính là tu luyện Vô Tình Tu La đạo.

    Tu công pháp này phải lấy giết chóc để luyện tâm. Lấy luyện tâm

    nhập vào Vô Tình đạo. Đắm chìm trong Vô Tình đạo, luyện ra Tu La chi

    hồn. Sau đó lấy cái hồn đó thay thế Nguyên Anh. Đến lúc đó Đại Tự tại Tu

    La thuật đã chính thức thành công.

    Khi tu luyện công pháp này, ở giai đoạn đầu yêu cầu rất nghiêm khắc, mỗi

    ngày đều phải giết một người. Vương Lâm ngưng thần suy nghĩ, đoán rằng

    hắc y trung niên chắc chắn là tu luyện Đại Tự tại Tu La thuật. Ngọc giản

    ReplyDelete