線性表概述

2021-08-30 16:29:11 字數 2149 閱讀 2983

[size=x-small]線性表是最基本、最簡單、也是最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。線性表的邏輯結構簡單,便於實現和操作。因此,線性表這種資料結構在實際應用中是廣泛採用的一種資料結構。[/size]

在實際應用中,[b][color=red]線性表都是以棧、佇列、字串、陣列等特殊線性表的形式來使用的[/color][/b]。由於這些特殊線性表都具有各自的特性,因此,掌握這些特殊線性表的特性,對於資料運算的可靠性和提高操作效率都是至關重要的。   線性表是乙個線性結構,它是乙個含有n≥0個結點的有限序列,對於其中的結點,有且僅有乙個開始結點沒有前驅但有乙個後繼結點,有且僅有乙個終端結點沒有後繼但有乙個前驅結點,其它的結點都有且僅有乙個前驅和乙個後繼結點。一般地,乙個線性表可以表示成乙個線性序列:k1,k2,…,kn,其中k1是開始結點,kn是終端結點。

[b]基本特徵[/b]

線性結構的基本特徵為:   

1.集合中必存在唯一的乙個「第一元素」;   

2.集合中必存在唯一的乙個 「最後元素」 ;   

3.除最後乙個元素之外,均有 唯一的後繼(後件);   

4.除第乙個元素之外,均有 唯一的前驅(前件)。   

由n(n≥0)個資料元素(結點)a1,a2,…,an組成的有限序列。   

資料元素的個數n定義為表的長度。   當n=0時稱為空表。  

常常將非空的線性表(n>0)記作:   (a1,a2,…an)   資料元素ai(1≦i≦n)只是乙個抽象的符號,其具體含義在不同的情況下可以不同。   

線性表的基本操作   

1)setnull(l) 置空表   

2)length(l) 求表長度;求表中元素個數   

3)get(l,i) 取表中第i個元素(1≤i≤n)   

4)prior(l,i) 取i的前趨元素   

5)next(l,i) 取i的後繼元素  

6)locate(l,x) 返回指定元素在表中的位置   

7)insert(l,i,x)插入元素   

8)delete(l,x) 刪除元素   

9)empty(l) 判別表是否為空。

在實現線性表資料元素的儲存方面,一般可用順序儲存結構和鏈式儲存結構兩種方法。

[b]棧(stack)在電腦科學中是限定僅在表尾進行插入或刪除操作的線性表。   

棧是一種資料結構,是只能在某一端插入和刪除的特殊線性表。它按照後進先出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後乙個資料被第乙個讀出來)。   

棧是允許在同一端進行插入和刪除操作的特殊線性表。允許進行插入和刪除操作的一端稱為棧頂(top),另一端為棧底(bottom);棧底固定,而棧頂浮動;棧中元素個數為零時稱為空棧。插入一般稱為進棧(push),刪除則稱為退棧(pop)。

棧也稱為後進先出表(lifo--last in first out表)。   

棧可以用來在函式呼叫的時候儲存斷點,做遞迴時要用到棧![/b]

佇列是一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。

進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。

佇列中沒有元素時,稱為空佇列。   

在佇列這種資料結構中,最先插入在元素將是最先被刪除;反之最後插入的元素將最後被刪除,因此佇列又稱為「先進先出」(fifo—first in first out)的線性表。   

佇列空的條件:

front=rear   

佇列滿的條件:

rear = maxsize

串是零個或多個字元組成的有限序列。一般記s=『a1a2....an 』其中,s是串名,單引號括起的字串行是串值;ai(1〈=i〈=n)可以是字母,數字或其它字元;串中所包含的字元個數為該串的長度。長度為零的串稱為空串,它不包含任何字元。   串中任意個連續的字元組成的子串行稱為該串的子串。包含子串的相應地稱為主串。通常,把子串在主串中第一次出現時,子串的第一次字元在主串中的序號,定義為子串在主串中的序號。   稱兩個串是相等的,當且僅當這兩個串的值相等。也就是說,只有當兩個串的長度相等,並且各個對應位置的字元都相等時才相等。   值得一提的是,串值必須用一對單引號括起來,但單引號本身不屬於。

注意:此處特別提到匹配演算法:樸素演算法和kmp改進型演算法。具體參見例子

5 1線性表概述

線性表是由n個元素a1,a2 an組成的有限序列。對於線性表的某個元素ai來說,稱其前面的元素a i 1 為直接前驅,後面的元素a i 1 為直接後繼。線性表的每個元素最多有乙個直接前驅和乙個直接後繼,這是線性表的特點。線性表常用基本運算有6個 1 初始化線性表 建立線性表空表 list 建構函式建...

鏈式線性表和順序線性表

在這裡插入 片 線性表的儲存結構 typedef struct seqlist typedef struct seqlist 順序表基本操作 初始化順序表在這裡插入 片 intseqlist init seqlist list,int size 插入資料元素在這裡插入 片 intseqlist in...

線性表演算法題庫 線性表習題

鍊錶。若指標p指向某結點時,能夠根據該指標找到其直接後繼,能夠順後繼指標鏈找到p結點後的結點。但是由於不知道其頭指標,所以無法訪問到p指標指向的結點的直接前趨。因此無法刪去該結點。2.雙鏈表。由於這樣的鍊錶提供雙向指標,根據p結點的前趨指標和後繼指標可以查詢到其直接前趨和直接後繼,從而可以刪除該結點...