數據結構複習——習題一

一、單項選擇題

  1. 數據結構是指( )。
    A.數據元素的組織形式 B.數據類型
    C.數據存儲結構 D.數據定義
  2. 數據在計算機存儲器內表示時,物理地址與邏輯地址不相同的,稱之爲( )。
    A.存儲結構 B.邏輯結構
    C.鏈式存儲結構 D.順序存儲結構
  3. 樹形結構是數據元素之間存在一種( )。
    A.一對一關係 B.多對多關係
    C.多對一關係 D.一對多關係
  4. 設語句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)
  5. 算法分析的目的是(1),算法分析的兩個主要方面是(2)。
    (1) A.找出數據結構的合理性 B.研究算法中的輸入和輸出關係
    C.分析算法的效率以求改進 D.分析算法的易懂性和文檔性
    (2) A.空間複雜度和時間複雜度 B.正確性和簡明性
    C.可讀性和文檔性 D.數據複雜性和程序複雜性
  6. 計算機算法指的是(1),它具備輸入,輸出和(2)等五個特性。
    (1) A.計算方法 B.排序方法
    C.解決問題的有限運算序列 D.調度方法
    (2) A.可行性,可移植性和可擴充性 B.可行性,確定性和有窮性
    C.確定性,有窮性和穩定性 D.易讀性,穩定性和安全性
  7. 數據在計算機內有鏈式和順序兩種存儲方式,在存儲空間使用的靈活性上,鏈式存儲比順序存儲要( )。
    A.低 B.高 C.相同 D.不好說
  8. 數據結構作爲一門獨立的課程出現是在( )年。
    A.1946 B.1953 C.1964 D.1968
  9. 數據結構只是研究數據的邏輯結構和物理結構,這種觀點( )。
    A.正確 B.錯誤
    C.前半句對,後半句錯 D.前半句錯,後半句對
  10. 計算機內部數據處理的基本單位是( )。
    A.數據 B.數據元素 C.數據項 D.數據庫

二、填空題

  1. 數據結構按邏輯結構可分爲兩大類,分別是______________和_________________。
  2. 數據的邏輯結構有四種基本形態,分別是________________、___________、
    ____________________、_____________。
  3. 線性結構反映結點間的邏輯關係是__________________的,非線性結構反映結點間的邏輯關係是__________________的。
  4. 一個算法的效率可分爲__________________效率和__________________效率。
  5. 在樹型結構中,樹根結點沒有__________________結點,其餘每個結點的有且只有__________________個前趨驅結點;葉子結點沒有__________________結點;其餘每個結點的後續結點可以__________________。
  6. 在圖型結構中,每個結點的前趨結點數和後續結點數可以__________________。
  7. 線性結構中元素之間存在__________________關係;樹型結構中元素之間存在__________________關係;圖型結構中元素之間存在__________________關係。
  8. 下面程序段的時間複雜度是__________________。
for(i=0;i<n;i++)
for(j=0;j<n;j++)
	A[i][j]=0;
  1. 下面程序段的時間複雜度是__________________。
i=s=0;
while(s<n)
{  i++;
   s+=i;
}
  1. 下面程序段的時間複雜度是__________________。
s=0;
for(i=0;i<n;i++)
	for(j=0;j<n;j++)
		s+=B[i][j];
sum=s;
  1. 下面程序段的時間複雜度是__________________。
i=1;
while(i<=n)
	i=i*3;
  1. 衡量算法正確性的標準通常是____________________________________。
  2. 算法時間複雜度的分析通常有兩種方法,即___________和___________的方法,通常我們對算法求時間複雜度時,採用後一種方法

三、求下列程序段的時間複雜度。

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參考答案

一、單項選擇題

  1. A 2. C 3. D 4. B 5. C、A 6. C、B 7. B 8. D 9. B 10. B

二、填空題

  1. 線性結構,非線性結構
  2. 集合,線性,樹,圖
  3. 一對一,一對多或多對多
  4. 時間,空間
  5. 前趨,一,後繼,多
  6. 有多個
  7. 一對一,一對多,多對多
  8. O(n2)
  9. O(n1/2)
  10. O(n2)
    11.O(log3n)
  11. 程序對於精心設計的典型合法數據輸入能得出符合要求的結果。
  12. 事後統計,事前估計

三、算法設計題

  1. O(n2) 2. O(n2) 3. O(n3) 4. O(n) 5. O(n)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章