數據結構 期末複習 —— 數據結構基本概念與順序表基本操做

數據結構基本概念與順序表基本操做

判斷題

  1. 若用鏈表來表示一個線性表,則表中元素的地址必定是連續的。F
  2. 抽象數據類型中基本操做的定義與具體實現有關。F

單選題

  1. 在數據結構中,與所使用的計算機無關的數據結構是(A)
    A. 邏輯結構
    B. 存儲結構
    C. 邏輯結構與存儲結構
    D. 物理結構算法

  2. 從物理存儲上能夠把數據結構分爲 (B)
    A. 動態結構、靜態結構
    B. 順序結構、鏈式結構
    C. 線性結構、樹形結構、圖形結構和集合結構
    D. 基本結構、構造型結構編程

  3. 下列關於數據的邏輯結構的敘述中,(A)是正確的。
    A. 數據的邏輯結構是數據元素間關係的描述
    B. 數據的邏輯結構反映了數據在計算機中的存儲方式
    C. 數據的邏輯結構分爲順序結構和鏈式結構
    D. 數據的邏輯結構分爲靜態結構和動態結構數組

  4. 圖形結構中元素之間存在(C)關係。
    A. 一對一
    B. 一對多
    C. 多對多
    D. 多對一數據結構

  5. 如下說法正確的是(D)。
    A. 數據元素是數據的最小單位
    B. 數據項是數據的基本單位
    C. 數據結構是帶有結構的各數據項的集合
    D. 一些表面上很不相同的數據能夠有相同的邏輯結構編程語言

  6. 數據的(B)包括集合、線性結構、樹形結構和圖形結構四種基本類型。
    A. 存儲結構
    B. 邏輯結構
    C. 基本運算
    D. 算法描述函數

  7. 在決定選取何種存儲結構時,通常不考慮(A)
    A. 各結點的值如何
    B. 結點個數的多少
    C. 對數據有哪些運算
    D. 所用編程語言實現這種結構是否方便設計

  8. 數據結構是一門研究非數值計算的程序設計問題中計算機的(A)以及它們之間的關係和運算等的學科。
    A. 操做對象
    B. 計算方法
    C. 邏輯存儲
    D. 數據映象指針

  9. 數據在計算機內存中的表示是指(A)。
    A. 數據的存儲結構
    B. 數據結構
    C. 數據的邏輯結構
    D. 數據元素之間的關係code

  10. 樹形結構中元素之間存在(B)關係。
    A. 一對一
    B. 一對多
    C. 多對多
    D. 多對一對象

  11. 線性結構中元素之間存在()關係。
    A. 一對一
    B. 一對多
    C. 多對多
    D. 多對一

函數題

PTA題目地址

知識點

邏輯結構

  1. 集合結構:數據結構中的元素之間除了「同屬一個集合」 的相互關係外,別無其餘關係
  2. 線性結構:數據結構中的元素存在一對一的相互關係
  3. 樹形結構:數據結構中的元素存在一對多的相互關係
  4. 圖形結構:數據結構中的元素存在多對多的相互關係

物理結構(存儲結構)

  1. 順序存儲結構:一段連續的內存空間。
    • 優勢:隨機訪問
    • 缺點:插入刪除效率低,大小固定
  2. 鏈式存儲結構:不必定連續的內存空間。
    • 優勢:大小動態擴展,插入刪除效率高
    • 缺點:不能隨機訪問。
  3. 索引存儲結構:爲了方便查找,總體無序,但索引塊之間有序,須要額外空間,存儲索引表。
    • 優勢:對順序查找的一種改進,查找效率高
    • 缺點:需額外空間存儲索引
  4. 散列存儲結構:選取某個函數,數據元素根據函數計算存儲位置可能存在多個數據元素存儲在同一位置,引發地址衝突。
    • 優勢:查找基於數據自己便可找到,查找效率高,存取效率高。
    • 缺點:存取隨機,不便於順序查找。

動態數據結構與靜態數據結構

數據結構一般基於計算機在內存中的任何位置獲取和存儲數據的能力,由指針指定的一個位串,表示一個內存地址,它能夠存儲在內存中,並由程序操做。所以,數組和記錄數據結構基於計算數據項的地址和算術運算;而連接的數據結構則是基於在結構內部存儲數據項的地址。

  1. 靜態數據結構:特色是由系統分配固定大小的存儲空間,之後在程序運行的過程當中,存儲空間的位置和容量都不會再改變。
  2. 動態數據結構:不肯定總的數據存儲量,而是爲現有的每個數據元素定義一個肯定的初始大小的空間,若干個數據元素分配若干個一樣大小的空間;當問題的數據量發生變化時,數據的存儲空間的大小也發生變化。若是數據量增長,就從新向系統申請新的空間;若是數據量減小,就將現有的多餘的空間歸還給系統;使用時候才能明確所使用的數據有哪些屬性字段,這些屬性字段是什麼類型的,無需提早明肯定義每個屬性字段的名字、類型、所屬層級。
  3. 總結:靜態數據結構須要系統提早餘留空間,而動態數據結構則是根據解析方法解析獲得數據並自由分配存儲空間,那麼相對於靜態數據結構,動態數據結構的冗餘小不少。

數據及其相關概念

  1. 數據:程序的操做對象,用於描述客觀事物
    • 數據的特色:
      • 能夠輸入到計算機
      • 能夠被計算機程序處理
      • 數據是一個抽象的概念,將其進行分類後獲得程序設計語言中的類型。如:int,float,char等等
  2. 數據項:一個數據元素由若干數據項組成
  3. 數據元素:組成數據對象的基本單位
  4. 數據對象:性質相同的數據元素的集合(相似於數組通常)
  5. 數據元素之間不是獨立的,存在特定的關係,這些關係即結構。數據結構指數據對象中數據元素之間的關係

例如:

struct Teacher   //一種數據類型
{
    char    name[32];//數據項
    char    tile[32];//數據項
    int     age;//數據項
    char    addr[128];//數據項
};

int main()
{
    struct Teacher t1; //數據元素
    struct Teacher tArray[30]; //數據對象
    memset(&t1, 0, sizeof(t1));

    strcpy(t1.name, "name"); //數據項
    strcpy(t1.addr, "addr"); //數據項
    strcpy(t1.tile, "addr"); //數據項
    t1.age = 1;
}
相關文章
相關標籤/搜索