一、單項選擇題
- 數據結構是指( )。
A.數據元素的組織形式 B.數據類型
C.數據存儲結構 D.數據定義
- 數據在計算機存儲器內表示時,物理地址與邏輯地址不相同的,稱之爲( )。
A.存儲結構 B.邏輯結構
C.鏈式存儲結構 D.順序存儲結構
- 樹形結構是數據元素之間存在一種( )。
A.一對一關係 B.多對多關係
C.多對一關係 D.一對多關係
- 設語句x++的時間是單位時間,則以下語句的時間複雜度爲( )。
for(i=1; i<=n; i++)
for(j=i; j<=n; j++)
x++;
A.O(1) B.O(n2) C.O(n) D.O(n3)
- 算法分析的目的是(1),算法分析的兩個主要方面是(2)。
(1) A.找出數據結構的合理性 B.研究算法中的輸入和輸出關係
C.分析算法的效率以求改進 D.分析算法的易懂性和文檔性
(2) A.空間複雜度和時間複雜度 B.正確性和簡明性
C.可讀性和文檔性 D.數據複雜性和程序複雜性
- 計算機算法指的是(1),它具備輸入,輸出和(2)等五個特性。
(1) A.計算方法 B.排序方法
C.解決問題的有限運算序列 D.調度方法
(2) A.可行性,可移植性和可擴充性 B.可行性,確定性和有窮性
C.確定性,有窮性和穩定性 D.易讀性,穩定性和安全性
- 數據在計算機內有鏈式和順序兩種存儲方式,在存儲空間使用的靈活性上,鏈式存儲比順序存儲要( )。
A.低 B.高 C.相同 D.不好說
- 數據結構作爲一門獨立的課程出現是在( )年。
A.1946 B.1953 C.1964 D.1968
- 數據結構只是研究數據的邏輯結構和物理結構,這種觀點( )。
A.正確 B.錯誤
C.前半句對,後半句錯 D.前半句錯,後半句對
- 計算機內部數據處理的基本單位是( )。
A.數據 B.數據元素 C.數據項 D.數據庫
二、填空題
- 數據結構按邏輯結構可分爲兩大類,分別是______________和_________________。
- 數據的邏輯結構有四種基本形態,分別是________________、___________、
____________________、_____________。
- 線性結構反映結點間的邏輯關係是__________________的,非線性結構反映結點間的邏輯關係是__________________的。
- 一個算法的效率可分爲__________________效率和__________________效率。
- 在樹型結構中,樹根結點沒有__________________結點,其餘每個結點的有且只有__________________個前趨驅結點;葉子結點沒有__________________結點;其餘每個結點的後續結點可以__________________。
- 在圖型結構中,每個結點的前趨結點數和後續結點數可以__________________。
- 線性結構中元素之間存在__________________關係;樹型結構中元素之間存在__________________關係;圖型結構中元素之間存在__________________關係。
- 下面程序段的時間複雜度是__________________。
for(i=0;i<n;i++)
for(j=0;j<n;j++)
A[i][j]=0;
- 下面程序段的時間複雜度是__________________。
i=s=0;
while(s<n)
{ i++;
s+=i;
}
- 下面程序段的時間複雜度是__________________。
s=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
s+=B[i][j];
sum=s;
- 下面程序段的時間複雜度是__________________。
i=1;
while(i<=n)
i=i*3;
- 衡量算法正確性的標準通常是____________________________________。
- 算法時間複雜度的分析通常有兩種方法,即___________和___________的方法,通常我們對算法求時間複雜度時,採用後一種方法。
三、求下列程序段的時間複雜度。
-
x=0;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
x++;
-
x=0;
for(i=1;i<n;i++)
for(j=1;j<=n-i;j++)
x++;
-
int i,j,k;
for(i=0;i<n;i++)
for(j=0;j<=n;j++)
{ c[i][j]=0;
for(k=0;k<n;k++)
c[i][j]=a[i][k]*b[k][j];
}
-
i=n-1;
while((i>=0)&&A[i]!=k))
i--;
return (i);
-
fact(n)
{
if(n<=1)
return (1);
else
return (n*fact(n-1));
}
習題1參考答案
一、單項選擇題
- A 2. C 3. D 4. B 5. C、A 6. C、B 7. B 8. D 9. B 10. B
二、填空題
- 線性結構,非線性結構
- 集合,線性,樹,圖
- 一對一,一對多或多對多
- 時間,空間
- 前趨,一,後繼,多
- 有多個
- 一對一,一對多,多對多
- O(n2)
- O(n1/2)
- O(n2)
11.O(log3n)
- 程序對於精心設計的典型合法數據輸入能得出符合要求的結果。
- 事後統計,事前估計
三、算法設計題
- O(n2) 2. O(n2) 3. O(n3) 4. O(n) 5. O(n)