第二節 線性表的基本概念與實現

 

一、線性表的定義和基本操作

1、定義:線性表是具有相同數據類型的n個數據元素的有限序列。該序列中所含元素的個數叫作線性表的長度,用n表示。當n=0時線性表是一個空表。

(1)線性表一般表示 : L = (a1 , a2 , a3 , ......,an)

其中,a1是唯一的“第一個”數據元素,又稱表頭元素;an是唯一的“最後一個”數據元素,又稱表尾元素。除第一個元素外每一個元素都有且僅有一個直接前驅元素。除最後一個元素外每一個元素都有且只有一個直接後繼元素。

2、線性表的特點

  • 表中元素個數有限。
  • 表中元素具有邏輯上的順序性,在序列中各元素排序有先後次序。
  • 表中的元素都是數據元素,每一個元素都是單個的元素。
  • 表中數據元素類型都相同,每個元素佔有相同大小的存儲空間。
  • 表中元素具有抽象性,即僅討論元素間的邏輯關係,不討論元素究竟表示什麼。

線性表是一種邏輯結構,表示元素之間一對一的相鄰關係。順序表和鏈表是指存儲結構,兩者屬於不同層面。

3、線性表的基本操作

一個數據結構的基本操作是指其最核心最基本的操作。

  • InitList(&L) :初始化表,構造一個空的線性表。
  • Length(L): 求表長。返回線性表的長度,即 L 中數據元素的個數。
  • LocateElem(L , e) : 按值查找。在表L 中查找具有個頂關鍵字值得元素。
  • GetElem(L , i) : 按位查找。獲取表L 中第 i 個位置的元素的值。
  • ListInsert(&L , i , e) : 插入操作。在表L 第 i 個位置 插入元素 e。
  • ListDelete(&L , i , &e) ; 刪除表L 中第 i 個位置的元素,並用 e 返回其值。
  • PrintList(L) : 輸出操作。按前後順序輸出 L 中的所有元素。
  • Empty(L) : 判空操作。若表 L 爲空表,則返回 true ,否則返回 false 。
  • DistoryList(&L) : 銷燬操作。銷燬線性表L ,並釋放 L 所佔用的內存空間。

二 、線性表的存儲結構

線性表的存儲結構有順序結構和鏈式存儲結構,前者稱爲順序表後者稱爲鏈表。

1、順序表

順序表就是把線性表中的所有元素按照其邏輯順序,依次存儲到從制定存儲位置開始的一塊連續的存儲空間中。線性表中第一個元素的存儲位置就是指定的存儲位置。

2、鏈表

在鏈表存儲中,每個節點不僅包含所存儲的元素信息,還包含元素之間邏輯關係的信息。如單鏈表前驅節點包含後繼結點的地址信息,這樣就可以通過前驅節點中的地址信息找到後繼節點的位置。


陳Sir的個人博客網站:https://chensir.yoga

個人公衆號:陳Sir很皮

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章