《數(shù)據(jù)結(jié)構(gòu)》第六篇、線性表概述(第一個數(shù)據(jù)結(jié)構(gòu),也是最簡單的數(shù)據(jù)結(jié)構(gòu))

玩命快遞.jpg

前面5篇文章我們講解了數(shù)據(jù)結(jié)構(gòu)和算法的一些概述,我們應(yīng)該對數(shù)據(jù)結(jié)構(gòu)和算法有了一定的認識了,本篇文章將會帶著大家學(xué)習(xí)最簡單的一個數(shù)據(jù)結(jié)構(gòu),即如題所述:

線性表

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

順序存儲

鏈?zhǔn)酱鎯?/h3>

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

什么是線性表?

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

線性表的特征

特征

每一種數(shù)據(jù)結(jié)構(gòu)都有它自己的特征,線性表作為一種最簡單的數(shù)據(jù)結(jié)構(gòu),它有如下幾個特征:
(1)線性表中有且只有一個開始結(jié)點(頭結(jié)點),這個開始結(jié)點沒有前驅(qū)結(jié)點。
(2)線性表中有且只有一個末尾結(jié)點(尾結(jié)點),這個末尾結(jié)點沒有后繼結(jié)點。
(3)除去開始結(jié)點和末尾結(jié)點,其他結(jié)點都有一個前驅(qū)結(jié)點和后繼結(jié)點。


線性表這種結(jié)構(gòu)使元素逐個排列開來,如手拉手的小朋友,如此呈現(xiàn)給人們的數(shù)據(jù)形式就比較清晰明了。

結(jié)構(gòu)特點

線性表在存儲結(jié)構(gòu)上有順序存儲和鏈?zhǔn)酱鎯煞N,但不管哪種存儲方式,他們的結(jié)構(gòu)都有如下特點:
(1)均勻性。雖然不同數(shù)據(jù)表的數(shù)據(jù)元素可以是各種各樣的,但對于同一個線性表來說,數(shù)據(jù)元素必須具有相同的數(shù)據(jù)類型和長度。
(2)有序性。各數(shù)據(jù)元素在線性表中的位置只取決于他們的序號,數(shù)據(jù)元素之間的相對位置是線性的,即存在唯一的“第一個”和“最后一個”數(shù)據(jù)元素。除了第一個數(shù)據(jù)元素和最后一個數(shù)據(jù)元素外,其他元素前面均只有一個數(shù)據(jù)元素,即直接前驅(qū),后面均只有一個數(shù)據(jù)元素即直接后繼。


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

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

  • 創(chuàng)建——Create():創(chuàng)建一個新的線性表
  • 初始化——Init():初始化操作,將新創(chuàng)建的線性表初始化為空
  • 獲取長度——GetLength():獲取線性表的長度
  • 判斷表是否為空——IsEmpty():判斷線性表是否為空
  • 獲取元素——Get():獲取線性表某一位置上的元素
  • 插入——Insert():在線性表某一位置插入元素
  • 刪除——Delete():刪除某一位置上的元素
  • 清空表——Clear():清空線性表,將線性表置為空
    等等其他操作
    上方概括的這些僅僅是基礎(chǔ)的操作,有時我們可能需要為這個線性表提供排序、合并、元素替換、復(fù)制新表等等操作,這就需要為數(shù)據(jù)結(jié)構(gòu)提供一些算法了。

ok,總結(jié)下啦~

可以說,線性表是應(yīng)用最廣泛的一種數(shù)據(jù)結(jié)構(gòu)了,我們在用的時候,都知道“鏈表”、"棧"、“隊列”等等數(shù)據(jù)結(jié)構(gòu),但是線性表還有很多推廣應(yīng)用,如時間表、排序表等。這些大家根據(jù)自己的工作需要去深究吧,這里僅僅介紹基礎(chǔ)的線性表,達到一個中級開發(fā)工程需要具備的數(shù)據(jù)結(jié)構(gòu)知識。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容