1. 程式人生 > 其它 >資料結構學習筆記(三)--線性表的定義和基本操作

資料結構學習筆記(三)--線性表的定義和基本操作

資料結構學習筆記(三)--線性表的定義和基本操作

資料結構三要素 --邏輯結構、資料的運算、儲存結構(物理結構)

  • 定義便是邏輯結構

  • 基本操作就是運算

  • 儲存結構不同,運算的實現方式不同

點選進入上一篇:資料結構學習筆記(二)--空間複雜度

線性表的定義

線性表是具有相同資料型別的n(n≥0)個數據元素的有限序列,其中n為表長,當n = 0時線性表是一個空表。若用L命名線性表,則其一般表示為: L = (a1 , a2 , ... , ai , a(i+1) , ... , an)。

注:線性表角標是從1開始的。

圖形顯示:

特性:

  1. 一個線性表中,所有資料元素資料型別都相同,即意味著每個資料元素所佔空間一樣大。
  2. 線性表是一個序列,故其有次序。
  3. 線性表是有限的。

線性表的概念彙總

  1. ai是線性表中的“第i個”元素線性表中的位序
  2. a1是表頭元素,an是表尾元素
  3. 除第一個元素外,每個元素有且僅有一個直接前驅;除最後一個元素外,每個元素有且僅有一個直接後繼

線性表的基本操作

類似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。

筆記

  1. 對資料的操作的記憶思路:一般都為創銷、增刪改查
  2. 描述基本操作的方法類似於虛擬碼,並不需要標明引數型別和返回值型別,具體在程式碼中實現才需要。
  3. 實際開發中,可根據實際需求定義其他的基本操作。
  4. 函式名和引數的形式與命名要求具有可讀性,例如駝峰命名法
  5. 什麼時候要傳入引用“&” --對引數的修改結果需要“帶回來”,也就是c++的引用指標。