허프만 트리 만들기(압축,c++프로그램밍)
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

허프만 트리 만들기(압축,c++프로그램밍)에 대한 보고서 자료입니다.

본문내용

);
ptr->right = a[1];
ptr->left = a[0];
a[0] = ptr;
sright(a, n);
n--;
}
Assign_Code(a[0], c, 0);
getch();
Delete_Tree(a[0]);
}
//node를 만들어준다
node* create(char a[], int x)
{
node* ptr;
ptr = (node *) malloc(sizeof(node));// 메모리를 할당한다.
ptr->freq = x;
strcpy( ptr->ch , a);
ptr->right = ptr->left = NULL;
return(ptr);
}
// 정렬하는 함수
void sort(node* a[], int n)
{
int i, j;
node* temp;
for (i = 0; i < n - 1; i++)
for (j = i; j < n; j++)
if (a[i]->freq > a[j]->freq)
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
void sright(node* a[], int n)
{
int i;
for (i = 1; i < n - 1; i++)
a[i] = a[i + 1];
}
// 코드를 assign 한다
void Assign_Code(node* tree, int c[], int n)
{
int i;
if ((tree->left == NULL) && (tree->right == NULL))
{
printf("%s code:", tree->ch);
for (i = 0; i < n; i++)
{
printf("%d", c[i]);
}
printf("\n");
}
else
{
c[n] = 1;
n++;
Assign_Code(tree->left, c, n);
c[n - 1] = 0;
Assign_Code(tree->right, c, n);
}
}
void Delete_Tree(node * root)
{
if(root!=NULL)
{
Delete_Tree(root->left);
Delete_Tree(root->right);
free(root);
}
}
이상으로 허프만 트리를 C++로 구현해 보는 프로그램을 알아보았다. 허프만 코드는 정말로 효율적이다. 우리는 허프만 코드를 이용하여 디지털 데이터를 비롯한 모든 어플리케이션에 사용할 수 있다. 허프만 코드는 데이터를 90%까지 압축 할 수 있는고 또 컴퓨터 네트워크나, 모뎀, 팩스에서 사용된다. 허프만 코드는 또 다양한 멀티미디어 어플리케이션에서도 사용되는데 jpeg나 mp3와 mpeg에서도 사용된다.
이상으로 data compression의 한 방법인 huffman code에 대해서 알아보았다.
마지막으로 더 알아봤으면 하는 것은 허프만 코드를 디코드 하는 C++ 코드를 알아보았으면 하고, 또 허프만 코드를 그래픽으로 나타내 줄 수 있는 C++ 코드도 알아보았으면한다. 또 허프만 코딩은 lossless 압축기술인데 lossy 압축기술의 표준인 jpeg와 mp3에 사용된다고 하는데 어떠한 알고리즘으로 사용되는지도 궁금하다.

키워드

  • 가격1,200
  • 페이지수7페이지
  • 등록일2004.04.25
  • 저작시기2004.04
  • 파일형식한글(hwp)
  • 자료번호#247405
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니