線性表的定義

線性表的順序存儲也叫順序表,是用一組地址連續的存儲單元依次存儲線性表中的數據元素,從而使得邏輯上相鄰的兩個元素在物理位置上也相鄰。第一個元素存儲在線性表中的起始位置,第i個元素的存儲位置後面緊接着存儲的是第i+1個元素,得知順序表的特點是表中元素的邏輯位置和其物理順序相同

假定線性表的元素類型爲elemtype,則線性表的順序存儲類型描述爲

#define MaxSize 50
typedef struct
{
    elemtype data[MaxSize];
    int length;
}Sqlist;    //順序表的類型定義

一維數組可以動態分配,也可以靜態分配。

動態分配:

#define InitSize 100
typedef struct
{
    elemtype *data; //指示動態分配數組的指針
    int MaxSize,length;
}Seqlist;

c的初試動態分配語句:

L.data=(elemtype*)malloc(sizeof(elemtype)*InitSize);

c++的初試動態分配語句:

L.data=new elemtype[InitSize];

注:動態分配並不是鏈式存儲,同樣屬於順序存儲結構,物理結構沒有變化,依然是隨機存儲方式,只是分配的空間大小可以在運行時決定

  1. 順序表最主要的特點是隨機訪問,即通過首地址和元素序號可在時間O(1)內找到指定的元素
  2. 順序表的存儲密度高,每個結點只存儲數據元素
  3. 順序表邏輯上相鄰的元素物理上也相鄰,所以插入和刪除元素都需要移動大量元素
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章