天天看点

【动态顺序表】 c语言的动态顺序表

动态顺序表: 容量不够时 自动增容(静态顺序表的改进)

动态顺序表的结构:

typedef int DataType;

typedef struct SeqList

{

DataType* _array;   //指向数据块的指针

size_t _size;       //有效数据个数

size_t _capacity;   //容量

}SeqList;

增容:

void _CheckCapacity(SeqList* pSeq)

if (pSeq->_size >= pSeq->_capacity)

//防止开始空间为0,而容量一直为0,所以多开辟一些空间。

pSeq->_capacity = 2 * pSeq->_capacity + 3;

pSeq->_array = (DataType *)realloc(pSeq->_array, pSeq-                                                     >_capacity*sizeof(DataType));

       }

}

//顺序表中数据为空可用提示语句给出或者assert报错

测试:

继续阅读