今天是線性表:
用一組地址連續的存儲單元依次存放線性表中的數據元素 順序映像的C語言描述 線性表的初始化操作 線性表元素定位操作 該算法的時間複雜度O(ListLength(L))//在0-表長之間變化 線性表元素插入 ListInsert(&L, i, e)的實現 問: 插入元素後, 線性表的邏輯關係發生了什麼變化 線性表的結構發生變化, 長度發生變化 時間複雜度: O(ListLength(L))//最壞的情況和表長一樣, 最好的情況是O 考慮平均的情況: 假設在第i個元素之前插入的概率爲pi, 則在長度爲n的線性表中插入一個元素所需移動元素次數的期望值爲: (一個公式) 若假定在線性表中任何一個位置上進行插入的概率都是相等的, 則移動元素的期望值爲: (又一個公式) 線性表刪除操作 ListDelete(&L, i, &e)的實現: 問: 刪除元素時, 線性表的邏輯結構發生了什麼變化 此算法的時間複雜度: O(ListLength(L))//和表長成正比 考慮平均的情況: 假設刪除第i個元素的概率爲qi, 則在長度爲n的線性表中刪除一個元素所需移動元素次數的期望值爲: (一個公式) 若假定在線性表中任何一個位置上進行刪除的概率是相等的, 則移動元素的期望值是: (一個公式) 2.3 線性表類型的實現 - 鏈式映像 1. 單鏈表 用一組地址任意的存儲單元存放線性表中的數據元素 以元素(數據元素的映像) + 指針(指示後繼元素存儲位置的) = 結點(表示數據元素) 以"結點的序列"表示線性表 - 稱爲鏈表 通常用線性表中第一個數據元素的存儲地址作爲線性表的地址, 稱作線性表的頭指針 2. 結點和單鏈表的C語言描述 3. 單鏈表操作的實現 線性表的操作GetElem(L, i, &e)在鏈表中的實現: 基本操作爲 使指針p始終指向線性表中的第j個數據元素 時間複雜度: O(ListLength(L)) // O表長 線性表的操作ListInsert_L(&L, i, e)在鏈表中的實現: 基本操作爲: 找到線性表中第i-1個結點, 修改其指向後繼的指針 時間複雜度: O(ListLength(L)) 線性表的操作ListDelete_L(&L, i, &e)在鏈表中的實現: 基本操作爲: 找到線性表中第i-1個結點, 修改其指向後繼的指針 時間複雜度: O(ListLength(L)) 這堂課主要講述了線性表的兩種實現形式 大家一看就知道...數組和鏈表, 具體看筆記把, 沒啥好說的 最近比較忙.