資料結構測試題。小問題見大智慧!
資料結構複習題
1. 已知二叉樹中,葉子節點數為40 ,僅有一個孩子結點的個數20,側總結點的個數為::99個
4, 圖常用的兩種遍歷演算法是:深度優先遍歷和廣度優先遍歷
5, N個頂點的有向圖最多有n(n-1)條弧
6, 在有向圖的鄰接矩陣上由第i行節點可得到第__i__個節點的出度,由第j列可得到第__j_個節點的入度。
7, 在一個元素為N的陣列中第I個元素之前插入一個元素(1=<i<=n+1)需要移動__n+1-i____個元素
8, 頭結點地址引用(指標)為L的迴圈單連結串列空表的判斷條件是 ___;
9, 一顆哈弗曼樹共有19個節點 ,其中葉子節點個數是_10_;
10, 要刪除擁有最大值的資料項需要遍歷__1_次單連結串列;
11, 圖的遍歷過程中,選擇出發頂點V0的次數為該圖的_連通分量__的個數;
12, 從連通圖的定義出發 ,樹是 一個沒有 _迴路或環__的連通圖;
13, 含N個頂點的無向連通圖中至少含有__(n-1)__條邊
二 選擇題
1, __儲存密度高_是順序儲存方式的優點;
2, 在含有N個元素的陣列中在任意一元素前插入一個元素所需移動節點的平均次數_n/2_;在任意一元素前刪除一個元素所需移動節點的次數是(n-1)/2;
3, 迴圈連結串列的主要優點是/____;
4, 一個棧的輸入序列為1,2,3,4,5 測下列序列中不可能的輸出序列是5,4,2,3,1;
5, 從佇列中刪除第I個元素 不是佇列的基本運算的是(答案B)
6, 下列程式 的時間複雜度是;o(n);
X=n;
While(x>1){
System.out.println(x);
X--;
}
7, 某二叉樹上的先序遍歷和後序遍歷正好相反,則該二叉樹一定是:高度等於節點數的二叉樹;
8, 用鄰接矩陣儲存圖 佔用的儲存空間大小隻與圖中結點個數有關 ,而與邊數無關;
9, 棧若用鏈式儲存結構,要求記憶體中可用的儲存單元的地址_連續不連續都可以__
12, 高度為K的二叉樹(假設根是第一層)的最大的結點數為_2的K次方減1 ;
13, 任何一個無向連通圖的最小生成樹:有一顆或多顆;
14, 在一個有向圖中。所有頂點的入度和等於 所有頂點的出度之和的__1__倍
15, 已知二叉樹的先序序列和中序序列如下:畫出該二叉樹:先序遍歷:ABDFKICEHJG;後序遍歷:DBKFIAHEJCG;
16, 假設用於通訊的電文由字符集
{A B C D E F G}
{0.33,0.15,0.10,0.08,0.1,0.20,0.04}構成,它們在電文中出現的頻度是{0.33,0.15,0.10,0.08,0.1,0.20,0.04}
(1)為這7個字元設計哈弗曼編碼;
A, B , C, D, E ,F ,G
11 100 010 1010 011 00 1011
(2)為這7這字元進行等長編碼,至少需要幾位二進位制數?哈弗曼編碼比等長編碼總長度壓縮多少?
至少需要3位二進位制數
壓縮了=(3-2.59)/3 =13.7%
17, 設有一組資料(C0,C1,C2.......Cn-1)存在一個一維陣列A【arraysize】的前幾個陣列元素位置((arraysize)=n)。請編寫一個方法將陣列資料原地倒置,即將陣列的錢前幾位原址內容置換為(En-1......E0)
Void inverse(int[] A){
Int n=A.lengeh;
Int m=n/2;
Int temp;
For(int i=0;i<m;i++){
Temp=A[i];
A[i]=A[n-1-i];
A[n-1-i]=temp;
}
}
18, 計算圖的連通分量的個數;
//訪問節點的方法:
Public class Visit{
Public void print(Object item){
System.our.print(item+” ”);
}
}
//深度優先遍歷的方法並計算訪問節點的次數:
private void depthFistSearch(int v,boolean[] visited, visit vs)throws Exception{
int count=0;
vs.print(getValue(v));
visited[v]=true;
int w=getFirstNeighbor(v);
while(w!=-1){
if(!visited[w])
depthFirstSearch(w,visited, vs);
w=getNestNeighbor(v,w);
}
return Count++;
}
說明:呼叫最小生成樹,深度優先遍歷。訪問節點的次數
19, 求連個正整數N和M的最大公約數的遞推定義式
為gcd(n,m)
public class RevTest {
static int Gcd(int n,int m){
if(n<m)
return Gcd(m,n);
if(m==0)
return n;
return Gcd(m,n%m);
}
public static void main(String[] args) {
System.out.println(Gcd(48,32));//Gcd()被呼叫3次
}
}
20, 統計該二叉樹中葉子節點的個數
Public int countLeaves( BiTreeNode t ){
If( t!=null ){
If (t.getLeft( ) ==null && t.getRight( )== null );
Return 1 ;
Int leftCount =0, rightCount = 0 ;
If (t.get.left ( ) !=null )
Leftcount = countleaves( t.getLeft( ) );
If(t.getright( ) != null )
Rightcount=countLeaves( t.getRight( ) );
Return leftcount +rightcount;
}
Return 0;
}
相關文章
- 常見問題--oracle物理資料庫結構概述Oracle資料庫
- 資料結構與演算法常見問題(面試題)不定時更新資料結構演算法面試題
- 資料結構連結串列筆試題資料結構筆試
- Hadoop測試常見問題和測試方法Hadoop
- 軟體測試面試常見問題面試
- [Luogu-P3676]小清新資料結構題-題解資料結構
- 03.Java資料結構問題Java資料結構
- 資料結構括號匹配問題資料結構
- 【資料結構】停車場問題資料結構
- 資料結構——RMQ(ST表)問題資料結構MQ
- 演算法、資料結構 常見面試題演算法資料結構面試題
- 資料結構連結串列各種問題資料結構
- iOS小記--使用結構體處理資料表的問題iOS結構體
- 測試CMS同步問題測試CMS同步問題
- 資料庫常見問題資料庫
- 大資料常見問題大資料
- 面試題-測試工程師常見的基礎問題面試題工程師
- 資料庫建模——powerdesiger常見問題總結資料庫
- 測試技術常見的十一種問題
- 初試微信小程式遇到問題總結微信小程式
- 自動化測試常見問題總結!(適合新手團隊)
- 效能測試常見面試題面試題
- 【dawn·資料結構】迷宮問題(C++)資料結構C++
- 資料結構初階--堆排序+TOPK問題資料結構排序TopK
- 資料結構(筆試題-棧(入棧出棧)資料結構筆試
- HTML常見小問題1HTML
- HTML常見小問題2HTML
- 資料結構和演算法面試題系列—揹包問題總結資料結構演算法面試題
- 常見問題總結
- 我使用jest測試專案中常見的問題
- 智慧硬體相容性測試常見問題
- 【整理】資料結構——題目資料結構
- 資料結構簡單題資料結構
- 迷宮問題【資料結構實驗報告】資料結構
- 資料庫常見面試題總結資料庫面試題
- 我們測試了上萬款應用程式,總結了APP測試流程和常見問題APP
- 資料探勘常見10大問題
- 常見問題--oracle10g修改表結構Oracle