/*
*Copyright© 中国地质大学(武汉) 信息工程学院
*All right reserved.
*
*文件名称:linkedList.h
*摘 要:利用单链表实现集合的交并运算
*
*当前版本:1.0
*作 者:邵玉胜
*完成日期:2018-12-27
*/
#ifndef LINKLIST_H_
#define LINKLIST_H_
#include<iostream>
//定义节点结构体
template<class T>
struct LinkedNode
{
LinkedNode<T>* _pNext; //指向下一个元素的指针
T _tData; //节点中的数据
LinkedNode(LinkedNode<T>* ptr = nullptr) { //构造函数,仅初始化指针
_pNext = ptr;
}
LinkedNode(T data, LinkedNode<T>* ptr = nullptr) { //构造函数,仅初始化指针
_tData = data;
_pNext = ptr;
}
};
template<class T>
class LinkedList
{
private:
LinkedNode<T>* _pFirst; //头节点指针
LinkedNode<T>* _pRear; //尾节点指针
int _iCountOfList; //节点数量
public:
LinkedList(); //构造函数
~LinkedList(); //析构函数
bool IsEmpty(); //判断链表空否
void MakeEmpty(); //置空
int Size() const; //获取节点数量
void PutElement(const T data); //向链表中增加数据
int DelElement(const T data); //在链表中删除指定的节点,返回删除的数量
bool GetElement(const int index, T& data); //获取下标为index的数据
void LocateElement(const T data, int& index); //获取链表中第一个数据为data的位置,没有找到就返回-1
void UnionList(const LinkedList<T>& lst); //求两个链表的并集
数据结构之利用单链表实现集合的交并运算
最新推荐文章于 2024-06-05 19:29:36 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)