1、假設(shè)進棧次序是e1, e2, e3, e4,那可能的出棧次序是()
A、e2, e4, e3, e1
B、e2, e3, e4, e1
C、e3, e2, e4, e1
D、e1, e2, e4, e3
給定入棧順序,求出可能的出棧順序。(點評:老得掉渣得題目了,只要小心點都沒有問題)
2、表達式X=A+B*(C-D)/E的后綴表示形式可以是()
A、XAB+CDE/-*=
B、XA+BC-DE/*=
C、XABCD-*E/+=
D、XABCDE+*/=
分析:XABCD-*E/+=
3.四叉樹中包含地空指針數(shù)量有多少?假設(shè)每個節(jié)點含有四個指向其孩子的指針,那么給定n個節(jié)點,其4n個指針有多少指向空?(比較簡單的題目,n個節(jié)點使用了的指針有n-1,所以最后的答案位4n-(n-1)=3n+1)
分析:或者舉例說明也行。。
4.那個排序算法是非穩(wěn)定的?選擇,冒泡、希爾,堆排序,快速等 (也是比較基礎(chǔ)的題目)
A、冒泡排序 B、歸并排序 C、快速排序 D、堆排序 E、希爾排序
分析:凡是O(n^2)的全部是穩(wěn)定排序,O(nlogn)的全部是非穩(wěn)定排序。。
5.根據(jù)函數(shù),賦予參數(shù)值,寫輸出。。請問func(0x7f530829)的返回值是()
int func(unsigned int i)
{
unsigned int temp = i;
temp = (temp & 0x55555555) + ((temp & 0xaaaaaaaa)>>1);
temp = (temp & 0x33333333) + ((temp & 0xcccccccc)>>2);
temp = (temp & 0x0f0f0f0f) + ((temp & 0xf0f0f0f0)>>4);
temp = (temp & 0xff00ff) + ((temp & 0xff00ff00)>>8);
temp = (temp & 0xffff) + ((temp & 0xffff0000)>>16);
return temp;
}
A、15 B、16 C、17 D、18
分析:函數(shù)實現(xiàn)的是求二進制表示的時候,1的個數(shù),一共15個
最開始把每一個位看做一個節(jié)點,相鄰節(jié)點值相加,結(jié)果用兩個位表示。。。
然后每兩個位看做一個節(jié)點,相鄰節(jié)點值相加,結(jié)果用四個位表示。。。
以此類推,直到只剩下一個節(jié)點。。。