امتیاز موضوع:
  • 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
۳۱-مرداد-۱۳۹۱, ۲۱:۰۶:۲۹
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش مبتدي تا پيشرفته زبان C++ - C dreamvbfox 46 136,868 ۱۲-آذر-۱۳۹۹, ۱۷:۴۶:۱۴
آخرین ارسال: mona_alizade
  [پروژه] الگوریتم زمانبندی RR به زبان C همراه سورس کد Ghoghnus 2 1,482 ۰۳-بهمن-۱۳۹۸, ۱۴:۲۷:۵۷
آخرین ارسال: Ghoghnus
Question درخواست برنامه ای به زبان ++C saeidengman 11 15,555 ۰۵-تير-۱۳۹۶, ۱۱:۴۷:۰۱
آخرین ارسال: alivolley
  ارتباط دو زبان c و ++C و ایجاد آبجکت از کلاس در C salehjg 3 3,742 ۲۴-اردیبهشت-۱۳۹۵, ۱۶:۰۸:۱۷
آخرین ارسال: salehjg
  کتاب فارسی اموزش زبان C lord_viper 12 33,520 ۱۹-اسفند-۱۳۹۳, ۰۰:۰۲:۰۵
آخرین ارسال: vigraz
Question [سوال] تبدیل نوع متغیر (float به unsigned char) در زبان سی PRO 3 7,754 ۰۹-مرداد-۱۳۹۲, ۲۰:۱۶:۰۰
آخرین ارسال: PRO
  برنامه شمارنده خاص به زبان ++C saidal 1 4,331 ۱۷-اسفند-۱۳۹۱, ۱۷:۲۰:۳۸
آخرین ارسال: Ghoghnus
  برنامه به زبان سی MicrowaveCO 1 4,113 ۳۱-مرداد-۱۳۹۰, ۰۰:۰۷:۱۶
آخرین ارسال: norozi
Exclamation [سوال] جستجوی دودویی با استفاده از اشارگرها در زبان C mitra.kh 1 4,178 ۲۴-فروردین-۱۳۹۰, ۱۴:۳۶:۴۰
آخرین ارسال: mitra.kh
  کتاب آموزش برنامه نویس به زبان ++C ali_1500max 1 5,816 ۲۰-فروردین-۱۳۹۰, ۲۱:۱۶:۰۵
آخرین ارسال: kasra.razi

پرش به انجمن:


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

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