• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

b tree

sahar_karimi

کاربر تازه وارد
تاریخ عضویت
9 جولای 2006
نوشته‌ها
10
لایک‌ها
0
سلام میشه اگر کسی میتونه الگوریتم درخت متعادل رو به من بده من وقت ندارم
ممنون :(
 

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
به نقل از sahar_karimi :
سلام میشه اگر کسی میتونه الگوریتم درخت متعادل رو به من بده من وقت ندارم
ممنون :(


ميشه توضيح بدين كه منظور از درخت متعادل چيه؟

يادمه خونده بوديم ولي الان يادم رفته :blink:
 

sahar_karimi

کاربر تازه وارد
تاریخ عضویت
9 جولای 2006
نوشته‌ها
10
لایک‌ها
0
در درخت متعادل هر گره درخت n فیلد دارد که مثلا اگر 20 در این گره باشرد اشاره گر چپ به گرهی که مقدارهای کمتر از 20 دارد اشاره میکند و اشاره گر راست به گرهی که مقدارهای بزرگتراز 20 دارد اشاره میکند
اگر برنامشو دارید به من بدید
 

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
به نقل از sahar_karimi :
در درخت متعادل هر گره درخت n فیلد دارد که مثلا اگر 20 در این گره باشرد اشاره گر چپ به گرهی که مقدارهای کمتر از 20 دارد اشاره میکند و اشاره گر راست به گرهی که مقدارهای بزرگتراز 20 دارد اشاره میکند
اگر برنامشو دارید به من بدید

آهان منظورتون همون BST خودمونه

کد:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct treenode
 { struct treenode *left;
   int info;
   struct treenode *right;
 };
 struct treenode *root=NULL;

 /////////////////////////////

 void insert(int x)
 {
 treenode *p,*q,*r;
 p=root;
  if(p==NULL)
   {
    root=new treenode;
    root->info=x;
    root->left=root->right=NULL;
    return;
   }//end if
   q=root;
   while(p!=NULL)
    {
    if(p->info==x)
     {
     printf("\n Can Not Insert");
     return;
     }//if
     if(p->info<x)
     {
     q=p;
     p=p->right;
     }
     else
      {
      q=p;
      p=p->left;
      }
    }//for
    r=new treenode;
    r->info=x;
    r->left=r->right=NULL;
    if (q->info<x)
    q->right=r;
    else
    q->left=r;
 }//insert

/////////////////////////
void binsearch(int x)
{
treenode *p;
p=root;
   while(p!=NULL)
   {
   if (p->info==x)
     {
     printf("\n i find x from this tree ");
     return;
     }
   if (p->info< x)
      p=p->right;
    else
      p=p->left;

   } //end while
 printf("\n not found");
}

////////////////////
void inorder(treenode *r)
 {
 if (r!=NULL )
  {
  inorder(r->left);
  printf("%6d",r->info);
  inorder(r->right);
  }
 }

 main()
{
 int x,n;

 for(;;)
 {

   clrscr();
 printf("\n1: Insert");
 printf("\n2: Search");
 printf("\n3: Print");
 printf("\n4: Exit");
 printf("\n Choose (1..4)");

  scanf("%d",&x) ;
 switch (x)
 {
 case 1 :{ printf("Enter Item");
	    scanf("%d",&n) ;
	    insert(n) ; } break;
case 2 :{ printf("Enter Item");
	    scanf("%d",&n) ;
	    binsearch(n) ;}  break;
case 3 : inorder(root);
	   break;
case 4 : exit;

 }
 getch();
 }
 }
 

sahar_karimi

کاربر تازه وارد
تاریخ عضویت
9 جولای 2006
نوشته‌ها
10
لایک‌ها
0
نه bst نیست که هر گره چند مقدار در خود دارد
 

sahar_karimi

کاربر تازه وارد
تاریخ عضویت
9 جولای 2006
نوشته‌ها
10
لایک‌ها
0
ممنون ولی من می دونم این درخت چطوری کار میکنه ولی نمیتونم پیاده سازی کنم یعنی وقت کم دارم
 

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
ممنون ولی من می دونم این درخت چطوری کار میکنه ولی نمیتونم پیاده سازی کنم یعنی وقت کم دارم[/
QUOTE]
يه سري به اينجا و اينجا بزنين پياده سازيش هم هست
شرمنده من سخت درگير امتحانا هستم بيشتر ار اين نمي تونم كمكتون كنم
 
بالا