امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ايجاد گره هاي بيشتر در درخت ها
نویسنده پیام
mn_nahvi آفلاین
تازه وارد

ارسال‌ها: 4
موضوع‌ها: 4
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #1
ايجاد گره هاي بيشتر در درخت ها
دوستان سلام.
يه برنامه دارم مينويسم مشابه اون چيزي كه در موبايل ها هست. يعني برنامه اي كه شماره ها رو كه ميزنيد توي ديكشنري ميگره نزديك ترين لغت رو به شماره هايي كه وارد كرديد براتون مياد.
دارم اين برنامه رو با ساختاري مشابه ساختار درختي مينويسم. ولي توي استراكچرم 3 تا اشاره گر از خودش گذاشتم.
حالا كه ميخوام مثلا داده جديد رو بهش وارد كنم با يه تابع بازگشتي اين كار رو كردم. تابع داخل خودش خودش رو فراخوني ميكنه و پيش ميره و همينطوري شاخه هاي درخت افزايش پيدا ميكنه و ...
مي برنامه رو كه اجرا ميكنم البته با TC‌ و تحت داس فقط 2 بار عمل پيمايش رو انجام ميده بعد ميپره بيرون شما ميدونيد مشكلش چيه؟ نميدونم توي فضاي پشته آدرسها بهم ميريزه كه اينطوري ميشه يا برنامه اشكال داره.
اين كد برنامه :

کد:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
/*class info{
   char y;
   int x;
};*/
struct dic{
   dic *right;
   dic *middle;
   dic *left;
   char data;
   char IsAlive;
};

void insertNchar(dic *,int);
void readdic(dic *);

void main()
{
   clrscr();
   int num,i;
   char La,Ra,Ma;
   dic *mydic=new dic();

   mydic->IsAlive=NULL;
   Ma=0;
   Ra=0;
   La=0;

   for(i=0;i<5;i++)
   {
      scanf("%d",&num);
      insertNchar(mydic,num);
   }

   getch();
}
void insertNchar(dic *root,int number)
{
   if(root->IsAlive==NULL)
   {
      root->IsAlive=1;
      switch(number)
      {
     case 1:
        root->left->data='a';
        root->middle->data='b';
        root->right->data='c';
     break;
     case 2:
        root->left->data='d';
        root->middle->data='e';
        root->right->data='f';
     break;
     case 3:
        root->left->data='g';
        root->middle->data='h';
        root->right->data='i';
     break;
     case 4:
        root->left->data='j';
        root->middle->data='k';
        root->right->data='l';
     break;
     case 5:
        root->left->data='m';
        root->middle->data='n';
        root->right->data='o';
     break;
     case 6:
        root->left->data='p';
        root->middle->data='q';
        root->right->data='r';
     break;
     case 7:
        root->left->data='s';
        root->middle->data='t';
        root->right->data='u';
     break;
     case 8:
        root->left->data='v';
        root->middle->data='w';
        root->right->data='x';
     break;
     case 9:
        root->left->data='y';
        root->middle->data='z';
     break;
      }
      root->left->IsAlive=NULL;
      root->middle->IsAlive=NULL;
      root->right->IsAlive=NULL;
   }
   else
   {
      insertNchar(root->left,number);
      insertNchar(root->middle,number);
      insertNchar(root->right,number);
   }
}
void readdic(dic *root)
{
   if(root->IsAlive==NULL)
   {
      printf("%c",root->left->data);
   }
   else
   {
       printf("%c",root->left->data);
       readdic(root->left);
//       readdic(root->middle);
//       readdic(root->right);
   }

}
۰۹-بهمن-۱۳۸۵, ۱۷:۳۵:۱۶
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] در مورد ساختن درخت هیپ fatima70 0 2,321 ۲۳-اردیبهشت-۱۳۹۱, ۱۵:۲۵:۲۶
آخرین ارسال: fatima70
  مرتب سازی یا استفاده از درخت Heap aliyarat 1 3,846 ۲۳-خرداد-۱۳۹۰, ۱۲:۰۸:۱۸
آخرین ارسال: aliyarat
  درخت mehraban 0 2,108 ۲۱-فروردین-۱۳۹۰, ۱۴:۰۶:۱۷
آخرین ارسال: mehraban
  پیاده سازی هافمن در C++ با استفاده از درخت mehrdad372 2 6,843 ۰۲-دى-۱۳۸۸, ۲۲:۲۵:۴۹
آخرین ارسال: lord_viper
  پیمایش درخت ها به صورت گرافیکی در c,c++ giti123 0 4,107 ۲۲-آبان-۱۳۸۷, ۱۹:۳۲:۲۶
آخرین ارسال: giti123
  ايجاد تايمر amircivil 9 5,521 ۰۱-مرداد-۱۳۸۵, ۱۰:۵۱:۲۴
آخرین ارسال: amircivil

پرش به انجمن:


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

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