本文主要是介绍数据结构之Chain类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//基于链表的类Chain
#include <iostream>
using namespace std;//节点类,定义了每个节点的存储类型和指针名称
template<class T>
class ChainNode
{
public:T data;ChainNode<T> *link;
};//链表类,封装了链表操作的相应方法
template<class T>
class Chain
{
public:Chain(){first=0; //构造函数,头结点指向空值}~Chain(); //析构函数bool IsEmpty()const{return first==0; //判断是否为空}int Length()const; //返回该链表的长度bool Find(int k,T&x)const; //返回第k个元素到x中int Search(const T&x)const; //返回x所在的位置Chain<T>& Delete(int k,T& x); //删除第k个元素并把它返回到x中Chain<T>& Insert(int k,const T&x); //在第k个元素之后插入xvoid Output(ostream& out) const; //重载操作符的输出函数ChainNode<T> *first; //指向第一个节点的指针ChainNode<T> *last; //指向最后一个节点的指针void Erase();void Zero(){first=0;};Chain<T>& Append(const T&x);};//链表遍历器类实现对链表的遍历
template<class T>
class ChainIterator
{
public:T* Initialize(const Chain<T>&c){location = c.first;if(location){return &location->data;//为何有地址符?}return 0;}T* Next(){if(!location)return 0;location = location->link;if(location)return &
这篇关于数据结构之Chain类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!