線性表

線性表

線性表是最基本、最簡單、也是最常用的一種數據結構。線性表中數據元素之間的關係是一對一的關係,即除了第一個和最後一個數據元素之外,其它數據元素都是首尾相接的。線性表的邏輯結構簡單,便於實現和操作。因此,線性表這種數據結構在實際套用中是廣泛採用的一種數據結構。

基本信息

結構

線性表是一種常用的數據結構,以下介紹線性表及其順序存儲,並對棧和佇列及它們的順序實現給出了詳細的設計描述。
在實際套用中,線性表都是以佇列字元串數組等特殊線性表的形式來使用的。由於這些特殊線性表都具有各自的特性,因此,掌握這些特殊線性表的特性,對於數據運算的可靠性和提高操作效率都是至關重要的。
線性表是一個線性結構,它是一個含有n≥0個結點的有限序列,對於其中的結點,有且僅有一個開始結點沒有前驅但有一個後繼結點,有且僅有一個終端結點沒有後繼但有一個前驅結點,其它的結點都有且僅有一個前驅和一個後繼結點。一般地,一個線性表可以表示成一個線性序列:k1,k2,…,kn,其中k1是開始結點,kn是終端結點。
是一個數據元素的有序(次序)集

特徵

線性結構的基本特徵為:
1.集合中必存在唯一的一個“第一元素”;
2.集合中必存在唯一的一個 “最後元素” ;
3.除最後一個元素之外,均有 唯一的後繼(後件);
4.除第一個元素之外,均有 唯一的前驅(前件)。
由n(n≥0)個數據元素(結點)a1,a2,…,an組成的有限序列。
數據元素的個數n定義為表的長度。
當n=0時稱為空表。
常常將非空的線性表(n>0)記作:
(a1,a2,…an)
數據元素ai(1≦i≦n)只是一個抽象的符號,其具體含義在不同的情況下可以不同。
線性表的基本操作
1)MakeEmpty(L) 這是一個將L變為空表的方法
2)Length(L) 返回表L的長度,即表中元素個數
3)Get(L,i) 這是一個函式,函式值為L中位置i處的元素(1≤i≤n)
4)Prev(L,i) 取i的前驅元素
5)Next(L,i) 取i的後繼元素
6)Locate(L,x) 這是一個函式,函式值為元素x在L中的位置
7)Insert(L,i,x)在表L的位置i處插入元素x,將原占據位置i的元素及後面的元素都向後推一個位置
8)Delete(L,p) 從表L中刪除位置p處的元素
9)IsEmpty(L) 如果表L為空表(長度為0)則返回true,否則返回false
10)Clear(L)清除所有元素
11)Init(L)同第一個,初始化線性表為空
12)Traverse(L)遍歷輸出所有元素
13)Find(L,x)查找並返回元素
14)Update(L,x)修改元素
15)Sort(L)對所有元素重新按給定的條件排序
16) strstr(string1,string2)用於字元數組的求string1中出現string2的首地址

結構特點

線性表具有如下的結構特點:

1.均勻性:雖然不同數據表的數據元素可以是各種各樣的,但對於同一線性表的各數據元素必定具有相同的數據類型和長度。
2.有序性:各數據元素線上性表中的位置只取決於它們的序與,數據元素之前的相對位置是線性的,即存在唯一的“第一個“和“最後一個”的數據元素,除了第一個和最後一個外,其它元素前面均只有一個數據元素直接前驅和後面均只有一個數據元素(直接後繼)。
在實現線性表數據元素的存儲方面,一般可用順序存儲結構和鏈式存儲結構兩種方法。鏈式存儲結構將在本網站線性鍊表中介紹,本章主要介紹用數組實現線性表數據元素的順序存儲及其套用。另外棧、佇列和串也是線性表的特殊情況,又稱為受限的線性結構
附一道選擇題:
下列哪個不是線性表(D)
A. 鍊表 B. 佇列 C.棧 D.關聯數組

線性表的推廣

時間有序表、排序表、和頻率有序表都可以看做是線性表的推廣。如果按照結點到達結構的時間先後,作為確定結點之間關係的,這樣一種線性結構稱之為時間有序表。例如,在紅燈前停下的一長串汽車,最先到達的為首結點,最後到達的為尾結點;在離開時最先到達的汽車將最先離開,最後到達的將最後離開。這些汽車構成理一個佇列,實際上就是一個時間有序表。棧和佇列都是時間有序表。頻率有序表是按照結點的使用頻率確定它們之間的相互關係的,而排序表是根據結點的關鍵字值來加以確定的。

相關搜尋

熱門詞條

聯絡我們