تالار گفتمان مانشت
سوال آسون ساختمان(خواهشا همه ببینید) - نسخه‌ی قابل چاپ

سوال آسون ساختمان(خواهشا همه ببینید) - Ali-IT - 18 دى ۱۳۹۴ ۰۲:۳۸ ب.ظ

سلام دوستان
۲تا سوال داشتم
ممنون میشم در مورد این سوالا راهنماییم کنید

[تصویر:  394318_derakht.png]

عمق درخت ۵ - ۳برگ - اندازه درخت ۷ - inorder : GFEDCBA

اینا درسته دیگه؟
--------------

این قطعه کد خروجیش چیه؟ متاسفانه ارور میده ران نمیشه!

کد:
#include <iostream>
#include <conio.h>
using namespace std;
void f(int [],int ,int,int,float*);
int main(void){
    
    const int n=50;
    float a[n]={1,5,2,6,3,1,4,5,6};
    int result=0;
    f(a,5,0,&result);
    cout<<result;

    
}
    void f(int a[],int n,int i,float * result){
        if(i==n)
        return;
        *result+=a[i];
        f(a,n,i+1,result);
        
    }

-------------
این تابع رو اجرا کنیم برای لیست پیوندی ساده زیر چه عملیاتی انجام میده؟

کد:
int LinkedList:: f(){
Node* i;
Node* j;
while(i->link-linkl=0)
i=i->link-link;
j=j-link;
return j->link->data;}

[تصویر:  394318_link.png]

دوستان خواهشا راهنمایی کنید تا آخر شب باید جوابا رو بفرسم

RE: سوال آسون ساختمان(خواهشا همه ببینید) - salam5 - 18 دى ۱۳۹۴ ۰۳:۵۰ ب.ظ

inorder: badcfge
کد اول: داره ۵ عضو اول آرایه رو با هم جمع می کنه و نتیجه رو در result میذاره.

کد دوم:یه بار دیگه کد اصلی رو چک کنید به نظر میاد یه چیزایی از قلم افتاده.اول اینکه i , j مقدار دهی اولیه نشدن،اگه فرض کنیم i,j به اولین عنصر لیست اشاره دارن ، شرط while برقرار نیست و وارد حلقه نمیشه!

RE: سوال آسون ساختمان(خواهشا همه ببینید) - LEA3C - 18 دى ۱۳۹۴ ۰۴:۲۶ ب.ظ

در مورد کدها اطلاعی ندارم
اما اگر عمق ریشه رو صفر بگیریم عمق درخت ۴ میشه
پیمایش inorder هم میشه: badcfge
تعداد برگ: ۳
این پیمایش که شما نوشتید RLV هست

RE: سوال آسون ساختمان(خواهشا همه ببینید) - Ali-IT - 18 دى ۱۳۹۴ ۰۵:۵۴ ب.ظ

(۱۸ دى ۱۳۹۴ ۰۳:۵۰ ب.ظ)salam5 نوشته شده توسط:  inorder: badcfge
کد اول: داره ۵ عضو اول آرایه رو با هم جمع می کنه و نتیجه رو در result میذاره.

کد دوم:یه بار دیگه کد اصلی رو چک کنید به نظر میاد یه چیزایی از قلم افتاده.اول اینکه i , j مقدار دهی اولیه نشدن،اگه فرض کنیم i,j به اولین عنصر لیست اشاره دارن ، شرط while برقرار نیست و وارد حلقه نمیشه!

کد اول چون از ۰-۵ هست یعنی ۱+۵+۲+۶+۳+۱؟ درسته؟
کد دوم هم متاسفانه صورت سوال مشکل داره ولی میخام بدونم درصورت برقرار بودن while , واشاره i-j به first, این تابع ما کلا چه عملیاتی انجام میده؟
ممنون

RE: سوال آسون ساختمان(خواهشا همه ببینید) - salam5 - 18 دى ۱۳۹۴ ۰۶:۲۲ ب.ظ

(۱۸ دى ۱۳۹۴ ۰۵:۵۴ ب.ظ)Ali-IT نوشته شده توسط:  
(18 دى ۱۳۹۴ ۰۳:۵۰ ب.ظ)salam5 نوشته شده توسط:  inorder: badcfge
کد اول: داره ۵ عضو اول آرایه رو با هم جمع می کنه و نتیجه رو در result میذاره.

کد دوم:یه بار دیگه کد اصلی رو چک کنید به نظر میاد یه چیزایی از قلم افتاده.اول اینکه i , j مقدار دهی اولیه نشدن،اگه فرض کنیم i,j به اولین عنصر لیست اشاره دارن ، شرط while برقرار نیست و وارد حلقه نمیشه!

کد اول چون از ۰-۵ هست یعنی ۱+۵+۲+۶+۳+۱؟ درسته؟
کد دوم هم متاسفانه صورت سوال مشکل داره ولی میخام بدونم درصورت برقرار بودن while , واشاره i-j به first, این تابع ما کلا چه عملیاتی انجام میده؟
ممنون
بله چون از صفره، ۶ تا عنصر اول آرایه جمع میشه

اگه کد اینجوری باشه
while(i->link-link !=0)
{
i=i->link-link;
j=j-link;
{
return j->link->data;
تو هر چرخه i دو عنصر جلو میره و j یه عنصر .
برای این لیست چرخه دو بار تکرار میشه i روی عنصر ۶ و j روی عنصر ۱۸ است. و در نهایت چیزی که بر می گرده(j-link-data) دیتای مربوط یه عنصر شماره ی ۲ هستش.

RE: سوال آسون ساختمان(خواهشا همه ببینید) - Masoud05 - 19 دى ۱۳۹۴ ۰۱:۳۳ ق.ظ

لطفا توجه داشته باشید که عنوان تاپیک باید دقیق و واضح باشد. تاپیک با عناوین نامناسب، ممکن است حذف گردند.