ساختمان داده
1- خروجی الگوریتم زیر با فراخوانی test (4) چیست؟(( ارشد دولتی 84))
Int test (int n)
{
Int I;
If(n>0) i=n;
Test (--n);
Cout<
}
1)خروجی تولید نمی کند. 2) 1.2.3.4 3) 0.1.2.3.4 4) 0.1.2.3
2- تابع زیر چه کاری را انجام می دهد؟((ازاد 76))
L(n)= 0 if n=1
L([n/2]) +1 if n>1
1)نصف عدد داده شده +1 و 13 2) بزرگترین عدد صحیح که 4, 2^L≤n
3)l=[log n] و 4 4) 2و 3
3-مقدار f(7) برای تابع زیر برابر است با: (( دولتی 82 ))
Function f( m:integer):integer;
Begin
If(m<=)then
F=m+m+2;
Else F=f(m-2)-2
End.
1)-2 2) 0 3)2 4) 4
4-شمار فراوانی کد زیر در بدترین حالت چیست؟((ازاد 85))
I=1; j=n;
Repeat
K=(i+j) / 2;
If a[k]<= x then i=k+1
Else j=k-1;
Until i>j;
1)[log(n+1)] 2) 2+3[log(n+1)] 3)log n 4)2+4[log(n+1)]
5)آنچه در زیر آمده است یک شبه کد اشتباه برای الگوریتمی است که باید متوازن بودن یا نبودن رشته ای از پرانتز ها را تعیین کند: (( دولتی 82))
Declare a character stack
While (more input is available)
{ read a character
If(the character is a '(')
Then push it on the stack]
Else if (the character is a')' and the stack is not empty)
Then pop a character off the stack
Else print unbalanced and exit
}
Print "balanced"
کدامیک از رشته های ناموزان زیر توسط الگوریتم فوق متوازن در نظر گرفته می شوند؟
1)(( ))) 2)( )) ( ( ) 3)( ) (( ( ) ) 4) (( ( ) ( ))
6-یک لیست دو طزفه خطی به صورت زیر داده شده است(( دولتی 74))
Type list =↑ node ;
Node =record
Element:char;
Next,prev:list
End;
فرض کنید لیست دارای سر لیست است. پردازه زیر برای کپی کردن این لیست پیشنهاد شده است:
Function copy (l;list):list;
Var lc:list;
Begin
Lc=nil;
If l< > nil then
Begin
New(lc);
lc↑.element=l↑.element;
lc↑.next=copy(l↑.next);
if l↑.next < > nil then
l↑.next↑.prev=l;
end;
copy=lc;
end;
1)این الگوریتم کاملا درست است. 2)این الگوریتم هیچوقت درست عمل نمی کند.
3)///////////////ممکن است ایچاد خطای زمان اجرا نماید.
4) //////////////فقط برای بعضی از لیستها کاملا درست است.
7-تابع زیر چه عملی را انجام می دهد؟توضیح اینکهlist نشان دهنده لیستی از اعداد بوده و منظور از تابع head تابعی است که مقدار اولین عنصر در لیست را برمیگرداند و تابع tail لیستی حاوی همه عناصر لیست ورودی به استثنای اولین عنصر را برمی گرداند ((دولتی 76))
Function what (l:list):integer;
Begin
If l=nil then
What =(0)
Else
If tail (l) ≠ nil then
What =(head (l)+ what (tail(tail(l))))
Else
What =head(l)
End;
1)تعداد عناصر لیست را برمیگرداند. 2)مجموع عناصر در مکان های فرد لیست ورودی را برمیگرداند.
3)تعداد عناصر در مکانهای فرد لیست ورودی را بر میگرداند.
4)مجموع عناصر لیست ورودی را برمیگرداند.
8-روش پیمایش درخت دودویی زیر را که به صورت بازگشتی تعریف می شود.1- ریشه ملاقات را visit می گیریم.2- درخت فرعی سمت راست را پیمایش می کنیم. 3-درخت فرعی سمت چپ را پیمایش می کنیم.بین گره های ملاقات شده توسط روش فوق الذکر وpreoder و inorder وpostorder وجود دارد؟(( دولتی 71 ))
1) گره های ملاقات شده معکوس گره های ملاقات شده توسط preorder است.
2).//////////////////////////////////////////////////////////////////inorder است.
3)///////////////////////////////////////////////////////////////////postorder است.
4)هیچ ربطی بین گره های ملاقات شده توسط روش های زیر نیست.
9-در یک گراف جهت دار g=(v,e) وزن همه یال ها برابر است می خواهیم طول کوتاه ترین مسیر ها را از یک راس به نام s را تا بقیه راس ها g بدست آوریم .کدام یک از گزینه های زیر مرتبه یک الگوریتم کارا برای حل این مساله است؟((دولتی 83))
1)o(|v|^2) 2)o(|v·|·|E|) 3)o(|V|log|E|) 4)o(|V|·|E|)
اگر کسی لا حل این ها مشکل داره بگه تا حل این ها را بذارم