C#數(shù)據(jù)結(jié)構(gòu)與算法之線性表淺析
C#數(shù)據(jù)結(jié)構(gòu)與算法之線性表是什么呢?讓我們首先來看看C#數(shù)據(jù)結(jié)構(gòu)與算法之線性表的概念:
線性表是最基本、最簡單、也是最常用的一種數(shù)據(jù)結(jié)構(gòu)。線性表中數(shù)據(jù)元素之間的關(guān)系是一對一的關(guān)系,即除了第一個和最后一個數(shù)據(jù)元素之外,其它數(shù)據(jù)元素都是首尾相接的。線性表的邏輯結(jié)構(gòu)簡單,便于實現(xiàn)和操作。因此,線性表這種數(shù)據(jù)結(jié)構(gòu)在實際應(yīng)用中是廣泛采用的一種數(shù)據(jù)結(jié)構(gòu)。線性表是一種常用的數(shù)據(jù)結(jié)構(gòu),本章介紹線性表及其順序存儲,并對棧和隊列及它們的順序?qū)崿F(xiàn)給出了詳細的設(shè)計描述。在實際應(yīng)用中,線性表都是以棧、隊列、字符串、數(shù)組等特殊線性表的形式來使用的。由于這些特殊線性表都具有各自的特性,因此,掌握這些特殊線性表的特性,對于數(shù)據(jù)運算的可靠性和提高操作效率都是至關(guān)重要的。
線性表是一個線性結(jié)構(gòu),它是一個含有n≥0個結(jié)點的有限序列,對于其中的結(jié)點,有且僅有一個開始結(jié)點沒有前驅(qū)但有一個后繼結(jié)點,有且僅有一個終端結(jié)點沒有后繼但有一個前驅(qū)結(jié)點,其它的結(jié)點都有且僅有一個前驅(qū)和一個后繼結(jié)點。一般地,一個線性表可以表示成一個線性序列:k1,k2,…,kn,其中k1是開始結(jié)點,kn是終端結(jié)點。n就是線性表的長度,當n=0時的線性表就是一個空表。平時我們都看到很多線性表的實例,如1-100就是一個線性表,表示為(1,2,3,...,100),一個數(shù)組或一個數(shù)據(jù)庫的表也是一
個線性表。注意:線性表是一個數(shù)據(jù)元素的有序(次序)集
C#數(shù)據(jù)結(jié)構(gòu)與算法之線性結(jié)構(gòu)的基本特征為:
1.集合中必存在唯一的一個“第一元素”;
2.集合中必存在唯一的一個 “最后元素” ;
3.除最后一個元素之外,均有 唯一的后繼(后件);
4.除第一個元素之外,均有 唯一的前驅(qū)(前件)。
線性表的接口如下所示:
C#數(shù)據(jù)結(jié)構(gòu)與算法之線性表的基本操作
1、求長度:GetLength()
初始條件:線性表存在;
操作結(jié)果:返回線性表中所有數(shù)據(jù)元素的個數(shù)。
2、清空操作:Clear()
初始條件:線性表存在且有數(shù)據(jù)元素;
操作結(jié)果:從線性表中清除所有數(shù)據(jù)元素,線性表為空。
3、判斷線性表是否為空:IsEmpty()
初始條件:線性表存在;
操作結(jié)果:如果線性表為空返回true,否則返回false。
4、附加操作:Append(T item)
初始條件:線性表存在且未滿;
操作結(jié)果:將值為item的新元素添加到表的末尾。
5、插入操作:Insert(T item, int i)
初始條件:線性表存在,插入位置正確()(1≤i≤n+1,n為插入前的表長)。
6 、刪除操作: Delete(int i)
初始條件:線性表存在并且線性表不為空。
7、取元素: GetElem(int i)
初始條件:線性表存在并且線性表不為空。
8、按值查找:Locate(T value)
初始條件:線性表存在并且線性表不為空。
C#數(shù)據(jù)結(jié)構(gòu)與算法之線性表具有如下的結(jié)構(gòu)特點:
1.均勻性:雖然不同數(shù)據(jù)表的數(shù)據(jù)元素可以是各種各樣的,但對于同一線性表的各數(shù)據(jù)元素必定具有相同的數(shù)所類 長度。
2.有序性:各數(shù)據(jù)元素在線性表中的位置只取決于它們的序與,數(shù)據(jù)元素之前的相對位置是線性的,即存在唯一的“第一個“和“最后一個“的數(shù)據(jù)元素,除了第一個和最后一個外,其它元素前面均只有一個數(shù)據(jù)元素直接前趨和后面均只有一個數(shù)據(jù)元素(直接后繼)。
在實現(xiàn)線性表數(shù)據(jù)元素的存儲方面,一般可用順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)兩種方法。鏈式存儲結(jié)構(gòu)將在本網(wǎng)站線性鏈表中介紹,本章主要介紹用數(shù)
組實現(xiàn)線性表數(shù)據(jù)元素的順序存儲及其應(yīng)用。另外棧.隊列和串也是線性表的特殊情況,又稱為受限的線性結(jié)構(gòu)。
C#數(shù)據(jù)結(jié)構(gòu)與算法之線性表的介紹就到這里,希望對你了解C#數(shù)據(jù)結(jié)構(gòu)與算法之線性表有所幫助。
【編輯推薦】