C++实现顺序表与链表

C++实现顺序表与链表
一、顺序表
之前已经对顺序表有了了解,需要注意的是读者如果疑惑以下代码没有实现头插与头删,是因为代码中任意插入与删除这两个函数可以实现此功能。下面有测试代码,读者也可以自行测试
代码如下:
#include<iostream>
using namespace std;
#include<assert.h>
typedef int DataType;
class SeqList
{
public:
	//构造函数
	SeqList()
		: _array(new DataType[3])
		, _capacity(3)
		, _size(0)
	{}

	//带参数的构造函数
	SeqList(DataType *array, size_t size)
		: _array(new DataType[size])
		, _capacity(size)
		, _size(size)
	{
		for (size_t i = 0; i < size; ++i)
			_array[i] = array[i];
	}

	//拷贝构造函数
	SeqList(const SeqList& s)
		:_array(new DataType[s._capacity])
		, _capacity(s._capacity)
		, _size(s._size)
	{
		for (size_t i = 0; i < s._size; ++i)
			_array[i] = s._array[i];
	}

	//运算符=重载
	SeqList& operator=(const SeqList& s)
	{
		DataType *tmp = new DataType[s._capacity];
		memcpy(tmp, s._array, s._size);
		delete[] _array;
		_array = tmp;
		_capacity = s._capacity;
		_size = s._size;
	}

	~SeqList()
	{
		if (_array)
		{
			delete[] _array;
			_size = 0;
			_capacity = 0;
		}
	}

	void PushBack(int data)
	{
		_CheckCapacity();
		_array[_size] = data;
		_size++;
	}
	void PopBack()
	{
		_size--;
	}
	void Insert(size_t pos, DataType data)
	{
		_CheckCapacity();
		size_t end = _size;
		while (end >= pos)
		{
			_array[end] = _array[end - 1];
			end--;
		}
		_array[p
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值