第六篇、線性表概述(第一個數據結構,也是最簡單的數據結構)

前面5篇文章我們講解了數據結構和算法的一些概述,我們應該對數據結構和算法有了一定的認識了,本篇文章將會帶着大家學習最簡單的一個數據結構,即如題所述:

線性表

線性表,顧名思義是像線一樣性質的表,他的用處多不勝數,是常用且最簡單的一種數據結構。
例如,一串英文字母,一隊手拉手的小朋友,一份學生成績單等都可以用線性表來表示。
線性表的存儲結構有

順序存儲

鏈式存儲

兩種,本文章先介紹線性表的一些特性,會在後兩篇文章中介紹常用的幾個線性表。

什麼是線性表?

線性表是具有相同特性的數據元素組成的一個有限序列。例如,定義一個線性表來存儲本班學生的學生編號,可表示爲如下形式:
(001,002,003,004,....,050)
這就是一個線性表。線性表也可以用一個標識符來命名,如
A=(001,002,003,004,....,050)。線性表中的元素個數爲線性表的長度,當元素個數爲0時,稱這個線性表爲空表。
線性表中的元素可以爲整數、字符等簡單數據,也可以由數個數據項組成,我的數據結構第一篇文章
https://www.jianshu.com/p/2a5b8bda7b84
中的學生信息表也是一個線性表,描述的是新學期入學學生的信息,其中每一個元素都是由幾個數據項組成的,在這種情況下,常把一個元素稱爲一條記錄

線性表的特徵

特徵

每一種數據結構都有它自己的特徵,線性表作爲一種最簡單的數據結構,它有如下幾個特徵:
(1)線性表中有且只有一個開始結點(頭結點),這個開始結點沒有前驅結點。
(2)線性表中有且只有一個末尾結點(尾結點),這個末尾結點沒有後繼結點。

(3)除去開始結點和末尾結點,其他結點都有一個前驅結點和後繼結點。


線性表這種結構使元素逐個排列開來,如手拉手的小朋友,如此呈現給人們的數據形式就比較清晰明瞭。

結構特點

線性表在存儲結構上有順序存儲和鏈式存儲兩種,但不管哪種存儲方式,他們的結構都有如下特點:
(1)均勻性。雖然不同數據表的數據元素可以是各種各樣的,但對於同一個線性表來說,數據元素必須具有相同的數據類型和長度。
(2)有序性。各數據元素在線性表中的位置只取決於他們的序號,數據元素之間的相對位置是線性的,即存在唯一的“第一個”和“最後一個”數據元素。除了第一個數據元素和最後一個數據元素外,其他元素前面均只有一個數據元素,即直接前驅,後面均只有一個數據元素

即直接後繼。


對於線性表的基本操作方式

線性表是一種比較靈活的數據結構,他的長度可以根據需要增減,它也可以進行插入和刪除等操作。對線性表的基本操作大概包括下方這些:

    創建——Create():創建一個新的線性表
    初始化——Init():初始化操作,將新創建的線性表初始化爲空
    獲取長度——GetLength():獲取線性表的長度
    判斷表是否爲空——IsEmpty():判斷線性表是否爲空
    獲取元素——Get():獲取線性表某一位置上的元素
    插入——Insert():在線性表某一位置插入元素
    刪除——Delete():刪除某一位置上的元素
    清空表——Clear():清空線性表,將線性表置爲空
    等等其他操作
    上方概括的這些僅僅是基礎的操作,有時我們可能需要爲這個線性表提供排序、合併、元素替換、複製新表等等操作,這就需要爲數據結構提供一些算法了。

ok,總結下啦~

可以說,線性表是應用最廣泛的一種數據結構了,我們在用的時候,都知道“鏈表”、"棧"、“隊列”等等數據結構,但是線性表還有很多推廣應用,如時間表、排序表等。這些大家根據自己的工作需要去深究吧,這裏僅僅介紹基礎的線性表,達到一箇中級開發工程需要具備的數據結構知識。

 

 

 

 

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