واضح آرشیو وب فارسی:سایت ریسک: oranoos_mta10-01-2008, 11:49 PMساختمان داده در ++c خيلي حياتيه خواهشن کمک کنيد (ساختمان داده در ++c) فرض کنید x=(x_1,x_2,…,x_n)و y=(y_1,y_2,…,y_m ) دو لیست پیوندی هستند . الگوریتمی برای ادغام این دو لیست بنویسید تا اگر m<=n باشد لیست پیوندی z=(x_1,y_1,x_2,y_2,…,x_m ,y_m ,x_(m+1),…,x_n) بدست آید و اگر m>n باشد z=(x_1,y_1,x_2,y_2,…,x_n ,y_n ,x_(n+1),…,y_m ) بدست آید. پس از ادغام دو لیست x و y باید لیستهای خالی را نشان دهند زیرا هر گره ی اولیه در x و y اکنون در z است . از هیچ گره ی اضافی استفاده نکنید . زمان اجرای این الگوریتم را حساب کنید. List-pointr merge(list-pointer ptr1,list-pointer ptr2) { List-pointer temp; Temp=(list-pointer ) new (sizeof(list-node)); If(is-full(temp)) { Cout<<"memory is full "; Exit(1); } Int i ; If( m <= n ) { For(temp=ptr1 ; temp -> link ; temp=temp -> link ) { Temp -> link = ptr2 ; i += 1; If ( I == m) Break; } While ( i != n ) { Temp -> link = ptr2; i += 1; } if( m > n ) { خوب به نظر شما این تابع همون کارو میکنه یا نه کلا تابع غلطه کمکم کنید فرض کنید x=(x_1,x_2,…,x_n)و y=(y_1,y_2,…,y_m ) دو لیست پیوندی هستند . فرض کنید در هر لیست پیوندی ‘ گره ها به ترتیب غیر نزولی مقادی فیلد data شان قرار گرفته اند.الگوریتمی برای ادغام این دو لیست بنویسید تا لیست پیوندی جدید z تولید کند که در آن گره ها نیز به همین ترتیب هستند . پس از ادغام دو لیست x و y باید لیستهای خالی را نشان دهند زیرا هر گره ی اولیه در x و y اکنون در z است . از هیچ گره ی اضافی استفاده نکنید . زمان اجرای این الگوریتم را حساب کنید. oranoos_mta12-01-2008, 12:55 PMبابا یکی به دادم برسه bad_boy_200712-01-2008, 05:52 PMساختمان داده در ++c خيلي حياتيه خواهشن کمک کنيد (ساختمان داده در ++c) فرض کنید x=(x_1,x_2,…,x_n)و y=(y_1,y_2,…,y_m ) دو لیست پیوندی هستند . الگوریتمی برای ادغام این دو لیست بنویسید تا اگر m<=n باشد لیست پیوندی z=(x_1,y_1,x_2,y_2,…,x_m ,y_m ,x_(m+1),…,x_n) بدست آید و اگر m>n باشد z=(x_1,y_1,x_2,y_2,…,x_n ,y_n ,x_(n+1),…,y_m ) بدست آید. پس از ادغام دو لیست x و y باید لیستهای خالی را نشان دهند زیرا هر گره ی اولیه در x و y اکنون در z است . از هیچ گره ی اضافی استفاده نکنید . زمان اجرای این الگوریتم را حساب کنید. List-pointr merge(list-pointer ptr1,list-pointer ptr2) { List-pointer temp; Temp=(list-pointer ) new (sizeof(list-node)); If(is-full(temp)) { Cout<<"memory is full "; Exit(1); } Int i ; If( m <= n ) { For(temp=ptr1 ; temp -> link ; temp=temp -> link ) { Temp -> link = ptr2 ; i += 1; If ( I == m) Break; } While ( i != n ) { Temp -> link = ptr2; i += 1; } if( m > n ) { خوب به نظر شما این تابع همون کارو میکنه یا نه کلا تابع غلطه کمکم کنید فرض کنید x=(x_1,x_2,…,x_n)و y=(y_1,y_2,…,y_m ) دو لیست پیوندی هستند . فرض کنید در هر لیست پیوندی ‘ گره ها به ترتیب غیر نزولی مقادی فیلد data شان قرار گرفته اند.الگوریتمی برای ادغام این دو لیست بنویسید تا لیست پیوندی جدید z تولید کند که در آن گره ها نیز به همین ترتیب هستند . پس از ادغام دو لیست x و y باید لیستهای خالی را نشان دهند زیرا هر گره ی اولیه در x و y اکنون در z است . از هیچ گره ی اضافی استفاده نکنید . زمان اجرای این الگوریتم را حساب کنید. لیستهای پیوندی X و Y مرتب هستن ؟ اگه هر دو لیست مرتب ان که خیلی ساده است الگوریتمش و مرتبه اجرایی از نوع اوی N هست ولی اگه نامرتب ان مرتبه اجرایی فکر کنم از نوع اوی N^2 هست و یکم الگوریتمش پیچیده تر میشه ؟ حالا لطفا بگو چطوره ؟ سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 351]