考研-數據結構3-線性表的定義和基本操做

線性表的邏輯結構

線性表是具備相同數據類型的n(n>=0)個數據元素的有限序列
image.png
除第一個元素外,每一個元素有且僅有一個直接前驅,除最後一個元素外,每一個元素有且僅有一個直接後繼。數組

線性表的順序存儲

線性表的順序存儲是用一組地址連續的存儲單元(c中的數組),依次存儲線性表中的數據元素,順序存儲的線性表也叫順序表
image.png性能

順序表須要的三個部分
1.存儲空間的起始位置
2.順序表最大存儲容量
3.順序表當前的長度spa

#define MaxSize 50 
typedef int Elemtype
typedef struct{
  ElemType data[MaxSize];
  int length ; 
}SqList;
//大小是固定的

動態建表3d

typedef int Elemtype
typedef struct{
  ElemType *data;
  int length ;
  int MaxSize ;  
}SqList;

#define InitSize 100
SqList L ; 
L.data = (ElemType)malloc(sizeof(ElemType) * InitSize)

動態分配並非鏈式存儲,一樣仍是屬於順序存儲結構,只是分配的空間大小能夠在運行時決定。
image.pngcode

順序表的操做

1.插入
image.png
性能
image.png
2.刪除
image.png
性能
image.pngblog

總結

優勢:
存儲密度大,不須要爲表中元素之間的邏輯關係增長額外存儲空間。
隨機存取:能夠快速存儲表中任一位置的元素
缺點:
出入和刪除操做須要移動大量元素
對存儲空間要求高,會產生存儲空間的「碎片」rem

相關文章
相關標籤/搜索