顺序结构实现【数据结构】
雖然在數據結構當中是先出現的線性表,然后出現的是數組
一:線性表的順序存儲結構
順序映象:用一組地址連續的存儲單元依次存放線性表當中的數據元素
線性表的起始地址:線性存儲第一個數據元素的地址,我們也稱作是基地址
我們知道,在我們定義數組的時候,數組名就是第1個元素的地址,我們可以利用數組名,對線性表進行簡單的操作,因為我們一旦定義了數組名就相當于知道了線性表的起始地址,從而可以迅速的訪問到線性表,對線性表進行一系列的操作
以存儲位置相鄰來表示有序對<ai-1,ai>,我們都知道,尖括號代表的是有順序的存儲
地址碼是有大有小的
在線性表討論順序結構存儲時,我們的腳標是從1開始,而不是從0開始,這應該引起我們的注意
解釋2:為什么定義當前的長度以及當前分配的存儲容量?
我們都知道,對于一個數組來說,在一開始的時候就對于存儲空間進行了分配,是利用動態分配還是靜態分配,分配空間的時候都是在一開始就已經決定了,對于靜態分配空間來說,比如一開始我們分配100個空間,但實際用到的空間只有10個,那么浪費的就有90個空間但實際用到的空間只有10個,那么浪費的就有90個空間,實際用到的空間隨時在變化,因此我們定義當前長度以及當前分配的存儲容量,當前分配的存儲容量,就是一開始我們被分配給到的空間,當前長度是我們數組空間實際占用的空間,
圓圈:由于線性表的長度隨著我們存儲數據的進行,它的長度隨時在變化,那么相對于靜態分配空間來說,我們必須采用動態分配,是必須采用動態分配,這樣我們更方便對于線性表當中的數據元素進行相應的操作
解釋1:第1個井號代表的是線性表存儲空間的初始分配量,也就是第一次分配給我們的空間大小
第2個警號是當我們存儲數據時,空間不夠用時,我們向內存一次申請的字節數的大小,是人為來進行分配的,根據下面的操作,綜合考慮的結果
*elem:指向數組地址的指針,是來找到存儲空間的位置信息的
ElemType:抽象數據類型的概括
SqList; //俗稱順序表----是重定義
順序表是線性表存儲結構的一種特殊方式,范圍是比順序表要小很多的
為什么定義結構體:結構體體現了線性表的存儲結構,包括哪些東西,就像是我們做菜一樣,我們要知道我們所需要的蔬菜是什么,只有把這些東西準備好,我們才能夠進行做菜的操作,這里的做菜,我們就是可以理解成對線性表進行一系列的操作
×××
基本操作都是對于線性表來說的,雖然我們現在有了順序表結構,那么我們把我們的任務交給順序表來進行實現,幫我們完成一系列的操作,就像是我們開設一家公司,開始我們都是自己白手起家,所有的事情都由我們自己來做,漸漸的隨著操作越來越多,就出現了一些員工,我們就可以把我們的工作交給員工來完成,這里指的就是,我們把線性表能夠實現的一些操作,或者說把線性表具有的一些操作,來讓他下面的順序表來實現,來讓他下面的順序表來實現因為順序表是線性表在物理上按順序存儲時的一種表現形式,
我們再來回憶一下adt,我們知道線性表或者說線性結構的一系列操作都概括在adt當中,
小知識點:Prant函數,即輸出函數,就是我們所理解的遍歷函數
總結
以上是生活随笔為你收集整理的顺序结构实现【数据结构】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dp打开思路:HDU1029 HDU10
- 下一篇: kmp2-HDU1358 HUST101