نمایش نتایج 1 تا 9 از 9

نام تاپیک: الگوریتم محاسبه تعداد برگ ها و سطح های یک درخت دودویی به زبان C

  1. #1
    کاربر دائمی آواتار 13601360
    تاریخ عضویت
    آذر 1386
    محل زندگی
    کنار دریای خزر
    پست
    422

    Tick الگوریتم محاسبه تعداد برگ ها و سطح های یک درخت دودویی به زبان C

    اگر امکان دارد الگوریتم شمارش تعداد برگ و سطح و گره های داخلی یک درخت دودویی را که به زبان C باشد را برایم بگذارید ممنون می شوم

  2. #2
    دوست عزیز این سوالی که پرسیدین سوال درستی نیست .
    جواب این سوال به نحوه ذخیره و پیاده سازی درختتون بستگی داره.



  3. #3
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    دوست عزیز این سوالی که پرسیدین سوال درستی نیست .
    جواب این سوال به نحوه ذخیره و پیاده سازی درختتون بستگی داره.
    وقتی درخت دودویی باشه ، نحوه قرار گیری فکر نکنم تاثیر خاصی داشته باشه

    اگر امکان دارد الگوریتم شمارش تعداد برگ و سطح و گره های داخلی یک درخت دودویی را که به زبان C باشد را برایم بگذارید ممنون می شوم
    دوست عزیز الگوریتم را با زبان خاصی نمی نویسند!
    برای شمارش برگها از یک تابع بازگشتی می توان استفاده کرد که مثلا پیمایش inorder درخت را انجام دهد و در حین پیمایش برگها را شمارش کرد(نودی که فرزندی ندارد)
    برای شمارش سطحها هم ،همین روش جوابگو است ، باید متغیری برای سطح ماکزیمم بگیرید، البته روش های دیگری هم وجود دارد، با کمی جستجو در همین بخش روش محاسبه سطح را می توانید پیدا کنید
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  4. #4
    کاربر دائمی آواتار 13601360
    تاریخ عضویت
    آذر 1386
    محل زندگی
    کنار دریای خزر
    پست
    422
    منظورم پیاده سازی درخت دودویی با اشاره گر است
    آخرین ویرایش به وسیله whitehat : جمعه 28 دی 1386 در 22:02 عصر دلیل: پستهای تکراری ادغام شد

  5. #5
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    منظورم پیاده سازی درخت دودویی با اشاره گر است
    دوست عزیز الگوریتم ها مستقل از ساختمان داده و پیاده سازی طراحی می شوند.
    شما ابتدا باید الگوریتم را طراحی کنید سپس آنرا به دلخواه خود پیاده سازی کنید. برای مسئله ای که عنوان کردید شما باید یکی از پیمایش های درخت را بکار ببرید، حال اینکه چه ساختمان داده ای بکار می برید با شما است. اگر درباره خود الگوریتم سوال دارید بپرسید ولی اگر در مورد پیاده سازی با زبان C مشکل دارید باید سوال خود را در بخش برنامه نویسی C بپرسید
    موفق باشید
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  6. #6
    نقل قول نوشته شده توسط whitehat مشاهده تاپیک
    وقتی درخت دودویی باشه ، نحوه قرار گیری فکر نکنم تاثیر خاصی داشته باشه
    دوست عزیز متوجه منظورتون هستم ، ولی من فکر می کنم دوستمون الگوریتم لازم نداره ونیازمند پیاده سازیه.
    برای همین اون سوال رو پرسیدم.



  7. #7
    کاربر دائمی آواتار 13601360
    تاریخ عضویت
    آذر 1386
    محل زندگی
    کنار دریای خزر
    پست
    422
    من مشکل ام پیاده سازی الگوریتم مورد نظر به زبان C است

  8. #8
    کاربر دائمی آواتار mehdi5106
    تاریخ عضویت
    مهر 1385
    محل زندگی
    جوين
    پست
    251

    Cool

    این توابعش ببین به دردت میخوره...
    تعداد گره ها:
    int noden(tree *node)
    {
    tree *tnode=node;
    if(tnode!=0)
    {
    if((tnode->left==0)&&(tnode->right==0))
    return 1;
    else
    return(noden(tnode->left)+noden(tnode->right)+1);
    }
    return 0;
    }


    تعداد برگها:
    int leaf(tree *node)
    {
    tree *tnode=node;
    if(tnode!=0)
    {
    if((tnode->left==0)&&(tnode->right==0))
    return 1;
    else
    return(leaf(tnode->left)+leaf(tnode->right));
    }
    return 0;
    }


    ارتفاع درخت:
    int depth(tree *node)
    {
    int l,r;
    tree *tnode=node;
    if(tnode!=0)
    {
    l=depth(tnode->left);
    r=depth(tnode->right);
    if(l>r)
    return l+1;
    else
    return r+1;
    }
    return 0;
    }

  9. #9

    نقل قول: الگوریتم محاسبه تعداد برگ ها و سطح های یک درخت دودویی به زبان C

    نقل قول نوشته شده توسط whitehat مشاهده تاپیک
    وقتی درخت دودویی باشه ، نحوه قرار گیری فکر نکنم تاثیر خاصی داشته باشه
    شمارش تعداد سطح در درخت

    دوست عزیز الگوریتم را با زبان خاصی نمی نویسند!
    برای شمارش برگها از یک تابع بازگشتی می توان استفاده کرد که مثلا پیمایش inorder درخت را انجام دهد و در حین پیمایش برگها را شمارش کرد(نودی که فرزندی ندارد)
    برای شمارش سطحها هم ،همین روش جوابگو است ، باید متغیری برای سطح ماکزیمم بگیرید، البته روش های دیگری هم وجود دارد، با کمی جستجو در همین بخش روش محاسبه سطح را می توانید پیدا کنید

تاپیک های مشابه

  1. تقاضایی راهنمایی و کمک در کار با Dreamweaver
    نوشته شده توسط احمد کاوه در بخش طراحی وب (Web Design)
    پاسخ: 4
    آخرین پست: پنج شنبه 29 مهر 1389, 12:41 عصر
  2. آقا چه چیزایی با javascript قابل حل هست چه چیزایی با .net
    نوشته شده توسط odiseh در بخش ASP.NET Web Forms
    پاسخ: 13
    آخرین پست: جمعه 02 فروردین 1387, 04:44 صبح
  3. دوستانی که با interbase آشنایی دارند لطفا راهنمایی کنند
    نوشته شده توسط mehdi_moosavi در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: شنبه 01 بهمن 1384, 14:11 عصر

قوانین ایجاد تاپیک در تالار

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