數據結構與演算法筆試題
1. 經典筆試面試知識整理,數據結構與演算法(代碼演示)
題目描述:
在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
輸入描述: array: 待查找的二維數組 target:查找的數字
輸出描述:
查找到返回true,查找不到返回false
題目描述:
請實現一個函數,將漏祥一個字元串中的空格替換成「%20」。例如,當字元串為We Are Happy.則經過替換之後的字元串為We%20Are%20Happy。
題目描述: 輸入一個鏈表,從尾到頭列印鏈表每個節點的值。
輸入描述: 輸入為鏈表的表頭
輸出描述: 輸出為需要列印的「新鏈表」的表頭
題目描述:
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。
例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹並返回。
題目描述:
把一個數組最開始的若干個元素搬到數組的末尾,我們稱之為數組的旋轉。輸入一個遞增排序的數組的一喊搜鉛個旋轉,輸出旋轉數組的最小元素。
例如數組{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該數組的最小值為1。 NOTE:給出的所有元素都大於0,若數組大小為0,請返回0。
1、題目描述:
大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項。n<=39
2、題目描述:
一隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上一個n級的台階總共有多少種跳法。
3、題目描述:
一隻青蛙一次可以跳上1級台階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的台階總共有多少種跳法。
4、題目描述:
我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法?
1、題目描述:
輸入一個整數,輸出該數二進製表示中1的個數。其中負數用補碼表示。
2、題目描述:
給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。
題目描述:
輸入一個整數數組,實現一個函數來調整鄭好該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
題目描述:
用兩個棧來實現一個隊列,完成隊列的Push和Pop操作, 隊列中的元素為int類型。
題目描述:
輸入一個鏈表,輸出該鏈表中倒數第k個結點。
2. 數據結構高手來幫忙(簡答題、演算法題)
1、順序存儲方式只能用於存儲線性結構。( N )
2、數組不枝悶納適合作為二叉樹的存儲結構。( N )
3、串是一種數據對象和操作都特殊的線性表。( Y )
4、線性表採用鏈表存儲時,結點和結點內部的存儲空間可以是不連續的。( Y )
5、棧和隊列都是限飛過海英語角制存取點的線性結構。( Y )
6、一個廣義表可以為其它廣義表所共享。( N )
7、樹的度是指樹內結點的度。( Y )
8、一棵一般樹的結點的 根次序遍歷和後根次序遍歷分別與其相應二叉樹的結點前序遍歷但是和後序就幾號回家豫劇遍歷是一致的。( N )
9、無向圖的鄰接矩陣一定對稱矩陣,有向圖的鄰接矩陣一定是非對稱矩陣。( N )
10、排序演算法中的比較次數與初始元素序列的排列無關。( X )
1、 設目標串t=「abaabcc」,模式串P=「aabc」,試描述根據窮舉模式匹配演算法進行匹配的過罩脊程。
abaabcc
aabc d=0, fail
aabc d=1, fail
aabc d=2, success, return 2
2、 設用於通訊的電文法由8個字母組成,字母在電文中出現的頻率分別為7,9,2,6,32,3,21,10,試為這8個字母設計不等長Huffman編碼,並給出該電文的總碼數(要求畫出猛沒Huffman編碼數)。
假設:
a:7 b:9 c:2 d:6 e:32 f:3 g:21 h:10
排序:
(c:2) (f:3) (d:6) (a:7) (b:9) (h:10) (g:21) (e:32)
按優先順序合並:
((c[0],f[1]):5) (d:6) (a:7) (b:9) (h:10) (g:21) (e:32)
(a:7) (b:9) (h:10) (((c[00],f[01]),d[1]):11) (g:21) (e:32)
(h:10) (((c[00],f[01]),d[1]):11) ((a[0],b[1]):16) (g:21) (e:32)
((a[0],b[1]):16) ((h[0],((c[100],f[101]),d[11])):21) (g:21) (e:32)
(g:21) (e:32) (((a[00],b[01]),(h[10],((c[1100],f[1101]),d[111]))):37)
(((a[00],b[01]),(h[10],((c[1100],f[1101]),d[111]))):37) ((g[0],e[1]):43)
((((a[000],b[001]),(h[010],((c[01100],f[01101]),d[0111]))),(g[10],e[11])):80)
a:000 3*7=21
b:001 3*9=37
c:01100 5*2=10
d:0111 4*6=24
e:11 2*32=64
f:01101 5*3=15
g:10 2*21=42
h:010 3*10=30
3. 數據結構與演算法選擇題!
第一題,DFS(深度優先遍歷)是一個遞歸演算法,在遍歷的過程中,先訪問的點被壓入棧底(棧是先進後出),再說:拓撲有序是指如果點U到點V有一條弧,則在拓撲序列中U一定在V之前。深度優先演算法搜索路徑恰恰是一條弧,棧的輸出是從最後一個被訪問點開始輸出,最後一個輸出的點是第一個被訪問的點。所以是逆的拓撲有序序列
第二題:無向圖路徑長度是指兩個頂點之間弧的條數,如果兩頂點路徑長度有2條弧,則有3個頂點例如A——B——C;
第三題:A:極小連通圖是一棵生成樹,只有N-1條邊,但是連通分量可能有N條邊,例如極小連通圖A—— B——C,連通分量「A」——B——C——「A」(這里的最後一個「A」跟第一個「A」一致):;
B:你查下極大強連通子圖概念就明白了;
C:你看看第二題的例子就明白了,AC之間沒有弧,但他們是一個拓撲序列;
D:例如:環形圖就不滿足,比如長方形,四個頂點,兩種遍歷都能訪問到每個頂點,但不是完全圖
4. 數據結構與演算法試題,高分,求答案啊
給你第一題解法吧:後面的實在是不想做。
先根:ABCDEFGHI
中根:CBEDAGFHI
遍歷的基本方法:先左子樹後右子樹。
1,先根遍歷可以確定根節點為A,
2,依據1步,可以在中根遍歷中確定左子樹為:CBED,右為:GFHI
3,在可以重復1,2步。就可以得到結果。
A
BF
CDGH
I
4,O(n^3)+O(1)