C/C++泛型编程实现数据结构之线性表

16 篇文章 2 订阅
4 篇文章 1 订阅

#C/C++泛型编程实现数据结构之线性表

泛型编程与面向对象编程的目标相同,即使重用代码和抽象通用概念的技术更加简单。但是面向对象编程强调编程的数据方面,泛型编程强调的是独立于特定数据类型。侧重点不同。

template <typename DataType,int MaxSize>
class Liner_table {
private:
public:
	DataType data[MaxSize];
	int length;

public:
	Liner_table(DataType arr[]) {									//构造函数,初始化线性表
		length = 0;
		for (int i = 0; arr[i]!='\0'; i++) {
			if (i > MaxSize) { cout << "error" << endl;}
			data[i] = arr[i];
		}
	}
		
	int ListLength() {								//求线性表长度
		return  length;
	}

	DataType GetNode(int position) {						//返回线性表position位置上的元素值
		if(position <= length){
			return data[position];
		}
	}

	int LocateNode(DataType data_info) {					//在线性表中查找元素data_info的位置
		for (int i = 0; i <  length; i++)
		{
			if ( date[i] == data_info) {
				return i;
			}
			else {
				return -1;
			}
		}
	}

	bool InsertList(int position, DataType value) {			//在线性表位置为position前插入元素data
		if ( length + 1 < MaxSize) {
			for (int i = this->length+1; i > position; i++) {
				 data[i] =  data[i-1];
			}
			++ length;
			this->data[position] = value;
			return true;
		}
		else {
			return false;
		}
	}

	bool DeleteList(int position) {							//删除线性表位置为position的元素
		if ( length - 1 < 0) {
			return false;
		}
		else {
			for (int i = position; i <=  length - 1; i++) {
				 data[i] =  data[i + 1];
			}
			-- length;
			return true;
		}
	}

	void purge() {											//删除线性表中所有的重复元素
		for (int i = 0; i < length; i++) {
			for (int j = i + 1; j <= length; j++) {
				if (data[i] == GetNode(j)) {
					DeleteList(i);
				}
			}
		}
	}

	DataType Find_max_value() {
		DataType max = GetNode(0);
		for (int i = 1; i <= length; i++) {
			if (max < GetNode(i)) {
				max = GetNode(i);
			}
		}
		return max;
	}
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值