c语言实现线性表的算法,数据结构算法代码实现——线性表的定义(一)
線性表的定義
線性表:是最常用且最簡單的一種數據結構,它是一種線性數據結構,是由類型相同的n個(n≥0)數據元素組成的有序序列。
線性表的特點:有且只有一個被稱作“第一個”的數據元素,有且只有一個被稱為“最后一個”的數據元素。除第一個數據元素之外,
其他元素都只有一個前驅,除最后一個數據元素之外,其他元素都只有一個后繼。簡單的說,其特點是數據元素之間存在”一一對應 (序偶關系)“
的關系。
好,現在舉個例子:比如英文字母表(A,B,C,D…Y,Z),可以看出除了A和Z字母之外,其他字母的前后都各有一個字母,A是B的前驅,C是B的后繼。
即屬于同一數據對象。
線性表的形式定義
數據結構的形式定義為:數據結構是一個二元組Data Structure=(D,S)。其中:D是數據元素的有限集,S是D上關系的有限集。
所以線性表也可以用二元組的形式定義:
List = (D,R)
D =(ai | 1≤i≤n,n≥0)
R ={ | ai,ai+1∈D,1≤i≤n-1}
其中,關系是一個序偶關系,表示線性表中數據元素的相鄰關系。
舉例:使用二元組的方式表示上述字母表
List = (D,R)
D = {A,B,C,D…Y,Z}
R = {,,,……,,}
線性表的抽象數據類型(ADT)
抽象數據類型可以用三元組的形式表示(D,S,P),其中,D是數據對象,S是D上的關系集,P是對D的基本操作集。也可以記為:
數據結構+基本操作【DSP】。
有關線性表詳細的ADT,請參考嚴蔚敏數據結構第19頁。在下一篇,我們會用C語言來編程實現所有的基本操作。
線性表的表示與實現(D,S)
數據元素之間的關系在計算機中有兩種不同的表示方法:順序映像和非順序映像。進而會得到兩種不同的存儲結構:
順序存儲結構和鏈式存儲結構。(物理(存儲)結構)。
線性表是一種線性結構(邏輯結構),屬于4大基本邏輯結構之一。所以,邏輯結構在用計算機表示存儲時即會有兩種方式:順序存儲結構和鏈式存儲結構。
線性表的基本操作(P)
表在我們生活中,就是用來存放數據的。數據的來源可以是書上、電視上的信息。線性表也是如此,使用計算機在內部存儲一樣表,數據的來源可以
是數據庫等等。
那么,我們為什么要用表來保存這些數據那,就是為了我們以后更方便的查找數據,并且表中的數據也不會是一成不變的。
好,舉個例子:比如說一輛火車,每節火車會有編號,如果有破的車廂還需要卸載或更換新的車廂。因此,我們要編寫一些函數來實現這類操作。
線性表在計算機存儲中有兩種方式,所以不同方式的存儲基本操作也會不同。各有優缺點,所以,我們要根據具體的情況來使用不同的方式。
下面幾篇文章,我們會討論線性表的不同存儲方式,以及基本操作的C語言代碼實現。
總結
以上是生活随笔為你收集整理的c语言实现线性表的算法,数据结构算法代码实现——线性表的定义(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结构体定义的三钟方式
- 下一篇: 大数据组件下载