1.创建动态顺寻链表
2.在动态顺链表中通过构造函数设置三个成员变量_array(数组),_capacity(容量),_size(大小)
class SeqList {
public:
SeqList(size_t capacity = 10)
{
_array = (DataType*)malloc(sizeof(DataType)*capacity);
if (nullptr== _array)
{
assert(0);
}
_capacity = capacity;
_size = 0;
}
}
3.在类共有人员中设置初始化函数 void SeqListPushBack,为了防止函数capacity申请的空间满了,在设置一个尾删函数
void SeqListPopBack
void PushBack(const DataType &data)
{
_array[_size++] = data;
}
void PopBack(size_t size)
{
size--;
}
程序代码完整如下:
#includeiostream>
#include<assert.h>
typedef int DataType;
class SeqList {
public:
SeqList(size_t capacity = 10)
{
_array = (DataType*)malloc(sizeof(DataType)*capacity);
if (nullptr== _array)
{
assert(0);
}
_capacity = capacity;
_size = 0;
}
void PushBack(const DataType &data)
{
_array[_size++] = data;
}
void PopBack(size_t size)
{
size--;
}
void SetPrintf() {
for (size_t i = 0;i < _size;i++)
{
cout << _array[i] << endl;
}
}
~SeqList()
{
free(_array);
_capacity = 0;
_size = 0;
}
private:
DataType* _array;
size_t _capacity;
size_t _size;
};
void TestFunc()
{
SeqList s;
s.PushBack(1);
s.PushBack(2);
s.PushBack(3);
s.PushBack(4);
s.SetPrintf();
}
int main()
{
TestFunc();
system("pause");
return 0;
}
注*_array=(DataType)malloc(sizeof(DataType)*capacity)申请需要通过free释放
~SeqList(){...}形参传递给构造函数以后,通过SeqListPushBack函数尾插函数,生命周期完以后通过~SeqList()
{...}清理成员变量的赋值。