數據結構學習筆記(三)--線性表的定義和基本操作
數據結構三要素 --邏輯結構、數據的運算、存儲結構(物理結構)
-
定義便是邏輯結構
-
基本操作就是運算
-
存儲結構不同,運算的實現方式不同
點擊進入上一篇:數據結構學習筆記(二)--空間復雜度
線性表的定義
線性表是具有相同數據類型的n(n≥0)個數據元素的有限序列,其中n為表長,當n = 0時線性表是一個空表。若用L命名線性表,則其一般表示為: L = (a1 , a2 , ... , ai , a(i+1) , ... , an)。
注:線性表角標是從1開始的。
圖形顯示:
特性:
- 一個線性表中,所有數據元素數據類型都相同,即意味着每個數據元素所占空間一樣大。
- 線性表是一個序列,故其有次序。
- 線性表是有限的。
線性表的概念匯總
- ai是線性表中的“第i個”元素線性表中的位序。
- a1是表頭元素,an是表尾元素。
- 除第一個元素外,每個元素有且僅有一個直接前驅;除最后一個元素外,每個元素有且僅有一個直接后繼。
線性表的基本操作
類似java學習的curd(增刪改查)但又不完全一樣,大概有如下幾種:
- InitList(&L):初始化表。構造一個空的線性表L,分配內存空間。
- DestroyList(&L): 銷毀操作。銷毀線性表,並釋放線性表L所占用的內存空間。
- ListInsert(&L,i,e):插入操作。在表L中的第i個位置上插入指定元素e。
- ListDelete(&L,i,&e):刪除操作。刪除表L中第i個位置的元素,並用e返回刪除元素的值。
- LocateElem(L,e):按值查找操作。在表L中查找具有給定關鍵字值的元素。
- GetElem(L,i):按位查找操作。獲取表L中第i個位置的元素的值。
其他常用操作
- Length(L):求表長。返回線性表L的長度,即L中數據元素的個數。
- PrintList(L):輸出操作。按前后順序輸出線性表L的所有元素值。
- Empty(L):判空操作。若L為空表,則返回true,否則返回false。
筆記
- 對數據的操作的記憶思路:一般都為創銷、增刪改查。
- 描述基本操作的方法類似於偽代碼,並不需要標明參數類型和返回值類型,具體在代碼中實現才需要。
- 實際開發中,可根據實際需求定義其他的基本操作。
- 函數名和參數的形式與命名要求具有可讀性,例如駝峰命名法。
- 什么時候要傳入引用“&” --對參數的修改結果需要“帶回來”,也就是c++的引用指針。
點擊進入下一篇:數據結構學習筆記(四)--順序表