一、順序表
1.順序表:用一段地址連續的存儲單元依次存儲數據元素的線性結構。
2.地址連續的空間,一般情況下采用數組,數組有靜態數組和動態數組
因此,順序表分爲靜態順序表、動態順序表
靜態順序表:
結構體變量分別爲:一個數組、有效元素的個數
DataType array[MAX_SIZE]; //存儲數據的空間
// int size; //1.有效數據 2.可通過下標方式進行訪問
動態順序表:(可以聯想爲他是一個桶)
結構體變量爲:數據塊指針(桶在哪)、當前有效數據個數(有多少水)、容量(痛的容量)
DataType *array;
int capacity;
int size;
在這裏存在一個擴容的過程
1.容量變大 2.開闢空間 3.將老數據寫進新空間 4.釋放老空間 5.將新空間掛起
pSLD->capacity *= 2;
DataType *NewArray = (DataType *)malloc(sizeof(DataType)*pSLD->capacity);
int i;
for (i = 0; i < pSLD->size; i++)
{
NewArray[i] = pSLD->array[i];
}
free(pSLD->array);
pSLD->array = NewArray;
具體的一些代碼實現過程戳這裏啦~
https://blog.csdn.net/Z_JUAN1/article/details/80749333
二、鏈表
鏈表:一種鏈式存儲的線性表,用一組地址任性的存儲單元存放線性表的數據元素,稱存儲單元爲一個節點。
- DataType data;
- struct SListNode *pNext;
鏈表分爲:單鏈表、雙鏈表、雙向循環鏈表
具體一些代碼點這裏啦~
https://blog.csdn.net/z_juan1/article/details/80729933