開發工具與關鍵技術:數據結構
作者:聽民謠的老貓
撰寫時間:2019/5/7 11:07
線性表
瞭解順序表,單鏈表的刪除和插入之前我們先簡單瞭解一下,什麼是線性表????
- 歸屬:線性表是數據結構的一種 。
- 基本運算:求表長,遍歷,按編號查找,特徵查找,插入,刪除,排序。
- (https://baike.baidu.com/item/%E7%BA%BF%E6%80%A7%E8%A1%A8)主要不講這個,給你們掛個傳送門,不用謝。
順序表,單鏈表
線性表中常見的就是順序表,單鏈表這兩位了。在各個計算機語言中都有廣泛使用
- 順序表
順序表你要簡單的理解它的表現形式就是數組了,它是使用一組地址連續的存儲單元依次存儲數據元素,每個元素都前後有序、整整齊齊。要訪問特定元素,可以使用索引訪問。(數組的味道),包括理解它的插入刪除你都可以帶着數組的思維理解。
順序表的插入
方法代碼
插入數據元素insert(int I,object x)
Public void insert (int i,object x)throws exception {…….
forint j = size; j>i:j--){ (size實際元素個數)
ListArray[j]=listArray[j-1];
}
ListArray[i]=x;
Size++;
}
圖解
理解:簡單點就是你插入哪個位置 就把哪個位置空出來,這個位置後面的數的位置在原來的基礎上加一,就和插隊一樣i就是你要插入的位置 size就是隊伍的長度
方法代碼爲什麼有省略號???
就是你要插入的位置不能大於實際元素個數,i的值不能大於size值 這就更好理解了 你插隊不可能插在最後面,假如隊伍長度是6,難道隊插在7???
順序表的刪除
方法代碼
Public object delete(int i)throws exception {…….
Object it = listArray[i]
for(int j =i:j<size-1:j++)
ListArray[j]=listArray[j+1];
Size--;
rturn it:
}
圖解
順序表的刪除和插入差不多,隊伍少了一個元素 那後面的元素就往前補,並且位置加一,同樣刪除的元素不能大於隊伍的長度,和插入同理。
listArray[i]的作用: 備份刪除元素,防止數據丟失
- 單鏈表的刪除和插入
單鏈表的插入
單鏈表數據域(data) 存儲元素的數組數據,指針域(next),單鏈表不像順序表,它不需要地址連續的單元來存儲線性表
圖解:
你插入位置是三你要把你的數據域(data)賦值給你的前面元素的指針域(next),
同樣你的指針域(next)獲得你後面元素的數據域(data);
用圖解來解釋就是 你插入的元素在a2後面,a3前面 那麼a2的指針域(next)的值變成了你的數據域(data)的值,同時你插入元素的指針域(next)的值也變成了a3的數據域(data)的值。
單鏈表的刪除
理解:
刪除就比較簡單了 ,假如你刪除元素位置2,那麼就移除a2,a2消失,那麼a1的指針域(next)的值就變成了a3的數據域(data)的值;
這就是順序表和鏈表的刪除和插入