数据结构:泛型链表的实现(C++)

Mi_List链表实现:

#include "stdafx.h"
#include <iostream>
//约定:Mi_List下标开始是0。Mi_Stack的升级版。
using namespace std;
template<class Ltype>
class Mi_List {
public:
	Mi_List() {
		size = 0;
		eFrist = 0;
		eEnd = 0;
	}
	//删除指定位置下表
	void DeleteWithIndex(int);
	//插入数据到指定位置
	void InsertWithIndex(int, Ltype);
	//删除链表尾
	void DeleteEnd();
	//删除链表首
	void DeleteStart();
	//插入数据到链表尾
	void InsertEnd(Ltype);
	//插入数据到链表首
	void InsertStart(Ltype);
	//输出链表数据
	void PrintList();
	//输出链表地址
	void PrintAddress();
	//清空链表
	void Clean();
	//获取指定位置数据
	Ltype GetElementWithIndex(int);
	//覆盖指定位置数据
	void ResiveDataWithIndex(int, Ltype);
	//获取链表首数据
	inline	Ltype GetFristElement() {
		return GetElementWithIndex(0);
	}
	//获取链表尾数据
	inline	Ltype GetEndElement() {
		return GetElementWithIndex(size - 1);
	}
	//获取链表长度
	inline int GetSize() {
		return size;
	}
private:
	int size;
	class Element {
	public:
		Ltype data;
		Element* pFront;
		Element* pRear;
	};
	Element* eFrist;
	Element* eEnd;
};


//在指定位置插入数据
template<class Ltype>
void Mi_List<Ltype>::InsertWithIndex(int _index, Ltype _data) {
	if (_index>size || 0>_index) {
		cout << "警告:队列插入失败,预插位置错误。" << endl;
		return;
	}
	if (0 == _index) {
		InsertStart(_data);
		return;
	}
	else if (_index == size - 1) {
		InsertEnd(_data);
		return;
	}
	else {
		Element* n = new Element();
		Element* e = eFrist;
		for (int i = 0;i<_index;i++) {
			e = e->pRear;
		}
		n->data = _data;
		n->pFront = e->pFront;
		n->pRear 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值