線性表是對順序表、隊列和棧的綜合稱呼,順序表的本質就是數組。
線性表(Linear List):
- 數據元素之間一個挨着一個
- 具有相同特性數據元素的有限序列
線性表?順序表?:
- 線性表是一種邏輯結構,表示元素之間一對一的相鄰關係。
- 順序表和鏈表是指存儲結構!!
- 也即線性表表明數據之間的邏輯結構是線性的;順序表和鏈表表明數據的存儲結構是順序的;
順序表的本質就是:數組!順序表等價於數組!
理解順序存儲結構:
- 是四大存儲結構中的一種(順序存儲、鏈式存儲、索引存儲、散列存儲);
- 大佬的定義:把邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元中,結點之間的邏輯關係由存儲單元的鄰接關係來體現。
- 菜鳥的理解:具有線性關係的數據、按照前後的次序、全部存儲在一整塊連續的內存空間中,即用一組地址連續的存儲單元、依次存儲線性表的各個數據元素
如果一個數組爲”a[10]={11,12,13,14,15,16,17,18,19.20}”。存儲的是int型數據,所以該數組是int型數組,所以k的值爲int型數據的寬度(即爲4字節)。
順序存儲的特性:
- 第一個元素所在的地址就是這塊存儲空間的首地址。通過首地址,可以輕鬆訪問到存儲的所有的數據。
- 可實現對結點的隨機存取,即每一個結點對應一個序號,由該序號可以直接計算出來結點的存儲地址。
順序表的定義:
#define SIZE 100 //存儲空間初始分配量
typedef struct Sqlist
{
int element[SIZE]; //數組存儲數據元素,最大長度爲SIZE
int current; //線性表當前長度
}Sqlist, * PSqlist;
注:在編程開發中,直接使用的是數組,幾乎不用線性表。所以我們直接用數組來代替它。
#include <stdio.h>
#define SIZE 10
int main()
{
int a[SIZE];
...
return 0;
}