c++顺序表(源码,可以直接使用)

c++顺序表

这是c++版数据结构的开始篇章,本人正在学习c++,准备把之前c语言实现过的数据结构用c++再次实现一遍。最近我会一直更新这个系列。由于本人正在学习中,文章出现的错误请私信我指正,或者给我发邮件3332784700@qq.com来学习交流。
这些代码都是经过我的测试,可以直接拿来用。此代码中有些函数我没调用,基本功能我都写了,使用者可以自行调用。
加油吧,各位。多动手,多敲,熟能生巧。
#include<iostream>
using namespace std;


template<class T>
class SeqList {
public:
	T* data;
	int maxsize;
	int length;
	SeqList(int sz) :maxsize(sz), length(0) {
		data = new T[maxsize];
			if (data == nullptr) {
				cout << " 初始化错误" << endl;
				exit(1);
		}
	}

	~SeqList() {
		delete data;
		data = nullptr;
	}

	bool IsEmpty() {
		return length == 0;
	}

	bool IsFull() {
		return length == maxsize;
	}
	//尾插
	void Input(T e){
		if (!IsFull()) {
			data[length] = e;
			length++;
		}
		else {
			cout << "空间不足" << endl;
		}
	}
	//尾删
	void Del_tail() {
		length--;
	}
	//头删
	void Del_Head() {
		int tmp;
		for (int i = 0; i < length; i++) {

			data[i] = data[i + 1];

		}
		length--;
	}
	void Show() {
		if (IsEmpty()) {
			cout << "该顺序表为空 " << endl;
		}
		else {
			cout << "该顺序表的遍历结果为 " << endl;
			for (int i = 0; i <length; i++) {
				cout << data[i]<<"  ";
			}
		}
	}
	//按位置查找
	T Search_pos(int pos) {
		if (pos > length) {
			cout << "位置错误" << endl;
		}
		return data[pos - 1];
	}

	//按值查找
	int Search_val(T e) {
		for (int i = 1; i <= length; i++) {
			if (data[i] == e) {
				return i;
			}
		}
		return - 1;
	}
	//2倍速扩容
	void expend() {
		delete data;
		data = new T[maxsize * 2];
	}
};
int main() {
	int sc;
	cout << "请输入你要开辟的大小";
	cin >> sc;
	SeqList<int > sq(sc);
	int length = 0;
	cout << "请输入所存入数据的长度";
	cin >> length;
	while (length > 0) {
		cout << "请输入存入顺序表的值(一次输入一个数字):";
		cin >> sc;
		sq.Input(sc);
		length--;
	}

	sq.Show();

}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值