【數據結構—1】線性表的概念與定義

線性表的概念與定義

本文出處請點擊這裏

以前看伍迷老師講了這麼一個故事:

我經常下午去幼兒園接送兒子,每次都能在門口看到老師帶着小朋友們,一個拉着另一個的衣服,依次從教室出來。而且我發現很有規律的是,每次他們的次序都是一樣。比如我兒子排在第5個,毎次他都是在第5個,前面同樣是那個小女孩,後面一直是那個小男孩。這點讓我很奇怪,爲什麼一定要這樣?

有一天我就問老師原因。她告訴我,爲了保障小朋友的安全,避免漏掉小朋友, 所以給他們安排了出門的次序,事先規定好了,誰在誰的前面,誰在誰的後面。這樣養成習慣後,如果有誰沒有到位,他前面和後面的小朋友就會主動報告老師,某人不在。即使以後如果要外出到公園或博物館等情況下,老師也可以很快地清點人數,萬一有人走丟’也能在最快時間知道,及時去尋找。

我一想,還真是這樣。小朋友們始終按照次序排隊做事,出意外的情況就可能會少很多。畢竟,遵守秩序是文明的標誌,應該從娃娃抓起。而且,真要有人丟失,小孩子反而是最認真負責的監督員。

嗯,這是一個很生動的例子。這種排好隊的組織方式,其實就是現實中的線性表。之前我們講了那麼多概念性的東西,今天可以拿具體的對象來練手了。

線性表(List):零個或多個數據元素的有限序列。

有幾個地方需要明確一下的:
  1. 首先它是一個序列。也就是說,元素之間是有順序的,若元素存在多個,則第一個元素無前驅,最後一個元素無後繼,其他每個元素都有且只有一個前驅和後繼。如果一個小朋友去拉兩個小朋友後面的衣服,那就不可以排成一隊了;同樣,如果一個小朋友後面的衣服,被兩個甚至多個小朋友拉扯,這其實是在打架,而不是有序排隊。

  2. 然後,線性表強調是有限的,小朋友班級人數是有限的,元素個數當然也是有限的。事實上,在計算機中處理的對象都是有限的,那種無限的數列,只存在於數學的概念中。

如果用數學語言來進行定義:

若將線性表記爲(a1, ……, ai-1, ai, ai+1, ……,an),則表中ai-1領先於ai,ai領先於ai+1,稱ai-1是ai的直接前驅元素,ai+1是ai的直接後繼元素。當丨=1, 2, ……, n-1時,ai有且僅有一個直接後繼,當i=2, 3, ……, n時,ai有且僅有一個直接前驅。

所以線性表元素的個數n (n>0)定義爲線性表的長度,當n=0時,稱爲空表。

在非空表中的每個數據元素都有一個確定的位置,如a1是第一個數據元素,an是最後一個數據元素,ai是第i個數據元素,稱i爲數據元素ai在線性表中的位序。

這就是線性表的定義。

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