سورس کد الگوریتم هافمن با زبان سی پلاس پلاس C++
در این پست سورس کد الگوریتم هافمن با زبان سی پلاس پلاس c++ را آماده کرده ایم که امیدواریم مورد استفاده قرار گیرد.
الگوریتم فشرده سازی و کدگذاری هافمن الگوریتمی برای فشرده سازی بی اتلاف داده ها است. در کدگذاری هافمن، از روشی برای انتخاب نمایش هر نماد استفاده شده است. در این روش کاراکترهای بیشتر استفاده شده با رشتههای بیتی کوتاهتری نسبت به آنهای که کاربردشان کمتر است، نشان داده میشوند.
انواع مختلف کد گذاری هافمن:
کد هافمن n تایی – کد هافمن انطباقی – الگوریتم الگوی هافمن – کد هافمن با طول محدود – کد هافمن با ارزش حرفی متفاوت – کد قانونی هافمن .
در این پروژه برنامه متنی را از کاربر دریافت کرده و با الگوریتم هافمن آن رافشرده سازی و کدگذاری می کند و در قسمتی از صفحه نمایش به کاربر نمایش میدهد.
در ادامه مطلب قسمت های از سورس برنامه کدگذاری هافمن را می توانید مشاهده کنید.
تکه کدهای از سورس کد الگوریتم هافمن با زبان سی پلاس پلاس:
جهت دریافت کد کامل این برنامه از قسمت خرید محصول اقدام کنید
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <iostream.h>
#include <stdlib.h>
class hafman
{
private:
struct treenode{
int data;
int num;
treenode *next;
treenode *right;
treenode *left;
}*end,*p;
struct code{
char bcode[12];
int ch;
}coding[140]; //256
struct tree{
int data;
int num;
}atree[512];
int o;
int numnode;
public:
struct treenode *start;
int numchar;
hafman()
{
o=0;
numchar =0;
numnode = 0;
start=NULL;
end=NULL;
}
int main()
{
char inputtext[70];
char byte[20]={0};
hafman h1;
int i;
cout<<"Enter Text For Compress With Hafman:";
gets(inputtext);
for(i=0;i<strlen(inputtext);i++)
{
h1.numchar++;
if (h1.search(inputtext[i])==-1)
h1.insert(inputtext[i]);
}
h1.sort();
h1.create();
h1.binary(h1.start,byte,0);
h1.tree(h1.start,1);
getch();
return 0;
}
سلام در مورد شیوه کدگذاری هافمن مشکل دارم لطفا راهنمایی کنید. اطلاعات من توی تصویر بصورت بلوکهای 64*64 می باشد که مقادیری بین 0 تا 255 می گیرند حالا باید چیکارشونکنم. توی کدگذاری هافمن اطلاعات کاراکتریه ولی اینجا نیست.
کد متلب برای درخت هافمن میخوام، آیا شما تو سایت دارید ؟ من سورس کد برنامه نویسی اش رو نیاز دارم.
تو سایت نه اما روی سیستم داریم که هنور روی سایت قرار نگرفته. جهت دریافت و هماهنگی با ایمیل سایت در ارتباط باشید همکاران راهنمایی خواهند کرد.