第二章
一、線性表的定義、性質、特點等
1.線性表中的數據元素可以是各種各樣的,但同一線性表是具有相同數據類型的n(n>=0)個數據元素的有限序列。
同一數據對象,相鄰數據元素之間存在着序偶關係。
該序列中所含元素的個數叫做線性表的長度,用n表示,n>=0;
n =0時,表示線性表是一個空表,即表中不包含任何元素。
2. 一個數據元素可以由若干個數據項組成。
數據元素稱爲記錄
含有大量記錄的線性表又稱文件
3.線性表的特點
表中元素的個數有限(n>=0)
表中元素具有邏輯上的順序性,在序列中各元素排序有其先後次序
表中元素都是數據元素,每一個元素都是單個元素
表中元素的數據類型都相同。(意味着每一個數據元素佔有相同大小的存儲空間)
表中元素具有抽象性。(即討論元素之間的邏輯關係,不考慮元素究竟表示的什麼內容)
4.數據的邏輯結構與數據的存儲無關,是獨立於計算機的。
數據的邏輯結構分爲:線性結構和非線性結構
線性結構:線性表
(線性表是一種邏輯結構,表示元素之間一對一的相鄰關係)
非線性結構:集合、樹型結構和圖狀結構或網狀結構
二、線性表的順序存儲
1.線性表的順序存儲又稱爲順序表
2.順序表必須佔用一整塊事先分配大小的固定的存儲空間(一組地址連續的存儲單元),依次存儲線性表中的數據元素,從而使得邏輯上相鄰的兩個元素在物理位置上也相鄰,所以進行插入或刪除操作時,平均需要移動半個表的元素,這是相當費時的操作,不便於存儲空間的管理。
3.順序表採用的是:隨機存取方式(是一種讀寫方式,不是存儲方式,有別於順序存儲)
4.順序表最主要的特點是:隨機訪問
隨機存取:隨機是指存取時間與存儲單元的物理位置無關,存取是指寫入與讀出操作,計算機中的主存如RAM採用這種方式,故稱爲隨機存儲器;
隨機訪問:側重於訪問,一般理解爲讀操作。因爲ROM是隻讀存儲器,所以可以像RAM一樣隨機訪問,但不能隨機存取;
隨機存儲:可以理解爲等同於隨機存取,只有RAM可以;RAM與ROM都屬於內存,也稱主存;CD-ROM是第一代光盤存儲器,只能讀出,不能寫入,屬於外部存儲器的一種,也稱輔助存儲器,它採用激光蝕刻的方法記錄信息;從存取方式上來看,與磁盤(軟盤、硬盤)有相同的屬性,屬於直接存取方式。
5.線性表採用順序存儲方式的優缺點:
優點:節省存儲空間
存儲密度高,每一個結點只存儲數據元素,可以隨機存取
缺點:順序表邏輯上相鄰的元素物理上也相鄰,所以插入和刪除操作需要移動大量元素,只能使用相鄰的一整塊存儲單元,因此可能產生較多的外部碎片
一、順序表
1.從順序表中刪除具有最小值的元素(假設唯一)並由函數返回被刪元素的值。空出的位置由最後一個元素填補,若順序表爲空則顯示出錯信息並退出運行。
2.設計一個高效的算法,將順序表的所有元素逆置,要求算法的空間複雜度爲O(1)。
3.長度爲n的順序表L,編寫一個時間複雜度O(n)、空間複雜度O(1)的算法,該算法刪除線性表中所有值爲x的數據元素。
4.從有序順序表中刪除其值在給定值s與t之間(要求s<t)的所有元素,如果s或t不合理或者順序表爲空則顯示出錯信息並退出運行。
5.從順序表中刪除其值在給定值s與t之間(包含s和t,要求s<t)的所有元素,如果s或t不合理或者順序表爲空則顯示出錯信息並退出運行。
6.從有序順序表中刪除所有其值重複的元素,使表中所有元素的值均不相同。
7.將兩個有序順序表合併成一個新的有序順序表,並由函數返回結果順序表。