数据结构之顺序表(SeqList)源代码

本文介绍了数据结构中的顺序表SeqList,包括Arraylist.h头文件的定义和main.cpp测试文件的详细内容,通过测试展示了SeqList的操作与功能。
摘要由CSDN通过智能技术生成

Arraylist.h文件

#pragma once
#include<iostream>
using namespace std;

//连续存储的线性结构:用数组表示
#define defaultSize 100

template<class T>
class ArrayList {
	//typedef ArrayList<T> _Ty;
private:
	int _maxSize;                         //所能存入的最大数目
	T* _pArr;                             //保存首地址的指针
	int _current;                          //目前保存的元素数目(从1开始)
protected:
	//初始化函数
	void init(int msz);
	//初始化函数,参数为ArrayList<T>类型
	void init(ArrayList<T>& arr);
public:
	//构造函数,为_pArr分配内存
	ArrayList(int msz = defaultSize);
	//复制构造函数
	ArrayList(ArrayList<T>& arrlst);
	//赋值函数
	ArrayList<T>& operator =(ArrayList<T>& arr);
	//析构函数
	~ArrayList();
	增加容量的函数,increment是增加的量
	void addCapacity(int increment);
	//输入输出函数
	void input();
	void output()const;
	//追加与插入的函数
	bool append(const T item);
	bool insert(int pos, const T item);
	//删除函数
	bool remove(int pos, T& item);
	//销毁整个数组的函数
	void destroy();
	//从新设置maxSize的函数
	void reSize(int resz);
	//取出特定位置元素并返回
	T getItem(int pos);
	//判断空否
	bool isEmpty() const{ return(_current == 0) ? true : false; };
	//判断满否
	bool isFull() const{ return(_maxSize == _current) ? true : false; };
	//排序函数,参数为true表示升序,false表示降序
	void sort(bool asc = true);
	//获取最大容量
	int getMaxSize() { return _maxSize; }
	//获取目前元素数量
	int getCurrentSize() { return _current; }
};


template<class T>
ArrayList<T>::ArrayList(int msz /*= defaultSize*/) {
	//调用初始化函数void init(int msz);
	init(msz);
}

//复制构造函数
template<class T>
ArrayList<T>::ArrayList(ArrayList<T>& arr) {
	//调用初始化函数void init(_Ty& arr);
	init(arr);
}

//初始化函数,用整形变量初始化
template<class T>
void ArrayList<T>::init(int msz) {
	//如果参数小于0,则报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值