امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
برنامه هافمن به زبان c++
نویسنده پیام
setayesh20 آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 1
تاریخ عضویت: دى ۱۳۸۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #1
Wink  برنامه هافمن به زبان c++
سلام
اگه برنامه کد بندی هافمن را دارید لطف کند برایم ارسال کنید (حیاتیه )
با تشکر Sad ستایش
۰۶-دى-۱۳۸۵, ۲۰:۵۱:۵۹
ارسال‌ها
پاسخ
ehsn آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 0
( 2 تشکر در 1 ارسال )
ارسال: #2
RE: برنامه هافمن به زبان c++
(۰۶-دى-۱۳۸۵, ۲۰:۵۱:۵۹)setayesh20 نوشته است: سلام
اگه برنامه کد بندی هافمن را دارید لطف کند برایم ارسال کنید (حیاتیه )
با تشکرSad ستایش

اینم کد هافمن. فقط باید قبل از اجرای برنامه یه فایل متنی حاوی رشته مورد نظرتون رو ایجاد کرده و در هنگام درخواست برنامه مسیر اون رو به برنامه بدید.Tongue
کد:
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <string.h>
#include <stdlib.h>

struct treenode{
int data;
int num;
treenode *next;
treenode *right;
treenode *left;
}*start=NULL,*end=NULL,*p;

struct code{
char bcode[12];
int ch;
}coding[256];

struct tree{
int data;
int num;
}atree[512];

int o=0;

int search(int i);
void insert(int i);
void insertm(struct treenode *l);
void sort();
void create();
void binary(struct treenode *n,char byte[],int i);
void tree(struct treenode *n,int i);
int numnode=0;
int numchar=0;
char filename[25];

void main()
{
clrscr();
FILE *fp1;

cout<<"\n Enter The Location And Name Of The Source File To Compress : ";
cin>>filename;
fp1=fopen(filename,"r+b");
if (fp1==NULL)
{
cout<<"\n Error In Open File...";
getch();
exit(1);
}
int i=getc(fp1);
while (i!=-1)
{
numchar++;
if (search(i)==-1)
insert(i);
i=getc(fp1);
}
fclose(fp1);
sort();
create();
char byte[20]={0};
binary(start,byte,0);
tree(start,1);
getch();
}

//*************************search******************************
int search(int i)
{
struct treenode *h;
h=start;
while(h)
{
if (h->data==i)
{
h->num=h->num+1;
return 0;
}
h=h->next;
}
return -1;
}
//**************************insert******************************
void insert(int i)
{
p=new treenode;
p->data=i;
p->num=1;
p->right=p->left=p->next=NULL;
if (start==NULL)
{
start=p;
end=p;
}
else
{
end->next=p;
end=p;
} }
//******************************Sort*******************
void sort()
{
struct treenode *h1,*h2,*n2,*right,*left;
int d,n;
n2=start;
while(n2)
{ h1=start;
h2=start->next;
while(h2)
{
if (h1->num > h2->num)
{
d=h1->data;
n=h1->num;
right=h1->right;
left=h1->left;
h1->data=h2->data;
h1->num=h2->num;
h1->right=h2->right;
h1->left=h2->left;
h2->data=d;
h2->num=n;
h2->right=right;
h2->left=left;
}
h1=h2;
h2=h2->next;
}
n2=n2->next;
} }
//****************Create*******************************
void create()
{
struct treenode *h;
while (start->next)
{
p=new treenode;
p->left=start;
p->right=start->next;
p->num=start->num+start->next->num;
p->data=-1;
p->next=NULL;
h=start;
start=start->next->next;
h->next->next=NULL;
h->next=NULL;
insertm(p);
sort();
}}
//********************Insertm****************************
void insertm(struct treenode *l)
{
if (start==NULL)
{
start=l;
end=l;
}
else
{
end->next=l;
end=l;
} }
//********************Binary****************************
void binary(struct treenode *n,char byte[],int i)
{
if (n->data==-1)
{
char b1[20]={0},b2[20]={0};
strcpy(b1,byte);
strcpy(b2,byte);
b1[i]='1';
binary(n->right,b1,i+1);
b2[i]='0';
binary(n->left,b2,i+1);
}
else
{
cout<<"Char :"<<(char)n->data<<" Byte : "<<byte<<"\n";
strcpy(coding[o].bcode,byte);
coding[o++].ch=n->data;
}
}
//*********************************************************
void tree(struct treenode *n,int i)
{
atree[i].data=n->data;
atree[i].num=n->num;
numnode=i;
if (n->left!=NULL)
tree(n->left,2*i);
if (n->right!=NULL)
tree(n->right,2*i+1);
}
(آخرین ویرایش در این ارسال: ۰۹-بهمن-۱۳۹۰, ۱۰:۱۱:۰۵، توسط lord_viper.)
۰۷-بهمن-۱۳۹۰, ۱۶:۰۵:۱۰
ارسال‌ها
پاسخ
تشکر شده توسط : The.Ghost, BuBBa
majid_es71 آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: اردیبهشت ۱۳۹۱

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #3
RE: برنامه هافمن به زبان c++
Ye Donya Mamnooooooooooooooooooooooooooooooooon
HappyHappyHappyHappyHappyHappyHappy
۲۶-اردیبهشت-۱۳۹۱, ۱۴:۴۹:۵۸
ارسال‌ها
پاسخ
masterhe3ar آفلاین
تازه وارد

ارسال‌ها: 13
موضوع‌ها: 0
تاریخ عضویت: آذر ۱۳۹۰

تشکرها : 0
( 1 تشکر در 0 ارسال )
ارسال: #4
RE: برنامه هافمن به زبان c++
آقایون ازتون خواهش میکنم کمکم کنید،من فردا تحویل پروژه دارم نمیدونم چیکار کنم
کسی هست بتونه پروژه زیرو به هر زبانی که شده واسم بنویسه؟ تورو خدا کمکم کنید

برنامه ای بنویسید که عناصر استک آ با سایز 10 از ورودی دریافت کند سپس با استفاده ار حداقل ساختمان داده اضافی

عناصر استک آ را وارد استک خالی بی کند
به نحوی که ترتیب عناصر در بی همان ترتیب در آ باشد

در دو حالت
الف:
جهت پیاده سازی ساخمان داده های مورد نیاز از آرایه استفاده کنید
ب:
از لیست های پیوندی

اگه کسی تونست واسم میل کنه یا خبرم بده اینم ایمیلم
leila_falah@yahoo.com
۳۱-مرداد-۱۳۹۱, ۲۱:۰۶:۲۹
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [پروژه] الگوریتم زمانبندی RR به زبان C همراه سورس کد Ghoghnus 2 479 ۰۳-بهمن-۱۳۹۸, ۱۴:۲۷:۵۷
آخرین ارسال: Ghoghnus
  [سوال] کپی برنامه به بخش دیگر mirage0411 3 2,864 ۲۲-بهمن-۱۳۹۶, ۱۹:۵۵:۵۸
آخرین ارسال: babyy
Question درخواست برنامه ای به زبان ++C saeidengman 11 14,265 ۰۵-تير-۱۳۹۶, ۱۱:۴۷:۰۱
آخرین ارسال: alivolley
  ارتباط دو زبان c و ++C و ایجاد آبجکت از کلاس در C salehjg 3 3,016 ۲۴-اردیبهشت-۱۳۹۵, ۱۶:۰۸:۱۷
آخرین ارسال: salehjg
  کتاب فارسی اموزش زبان C lord_viper 12 31,437 ۱۹-اسفند-۱۳۹۳, ۰۰:۰۲:۰۵
آخرین ارسال: vigraz
  آموزش مبتدي تا پيشرفته زبان C++ - C dreamvbfox 44 128,569 ۰۹-آبان-۱۳۹۳, ۰۵:۰۰:۲۲
آخرین ارسال: NO DONGLE
Question [سوال] تبدیل نوع متغیر (float به unsigned char) در زبان سی PRO 3 6,537 ۰۹-مرداد-۱۳۹۲, ۲۰:۱۶:۰۰
آخرین ارسال: PRO
  برنامه شمارنده خاص به زبان ++C saidal 1 3,551 ۱۷-اسفند-۱۳۹۱, ۱۷:۲۰:۳۸
آخرین ارسال: Ghoghnus
  برنامه به زبان سی MicrowaveCO 1 3,646 ۳۱-مرداد-۱۳۹۰, ۰۰:۰۷:۱۶
آخرین ارسال: norozi
Exclamation [سوال] جستجوی دودویی با استفاده از اشارگرها در زبان C mitra.kh 1 3,812 ۲۴-فروردین-۱۳۹۰, ۱۴:۳۶:۴۰
آخرین ارسال: mitra.kh

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS