⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 circlistiterator.h

📁 数据结构答案 金元平
💻 H
字号:
// CircListIterator.h: interface for the CircListIterator class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_CIRCLISTITERATOR_H__1E7F2B76_0A6C_411B_937F_AAC817E16B45__INCLUDED_)
#define AFX_CIRCLISTITERATOR_H__1E7F2B76_0A6C_411B_937F_AAC817E16B45__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

template <class T>
class CircListIterator  
{
public:
	CircListIterator(const CircList<T>& cl);
	virtual ~CircListIterator();
	bool notEnd();
	bool nextNotEnd();
	T* first();
	T* next();
private:
	const CircList<T>& list;
	ListNode<T>* current;

};

template <class T>
CircListIterator<T>::CircListIterator(const CircList<T>& cl)
:list(cl), current(cl.last->link)
{
}

template <class T>
CircListIterator<T>::~CircListIterator()
{
}

template <class T>
bool CircListIterator<T>::notEnd()
{
	return current!=list.last;
}

template <class T>
bool CircListIterator<T>::nextNotEnd()
{
	return current->link!=list.last;
}

template <class T>
T* CircListIterator<T>::first()
{
	current = list.last->link;
	return &(current->data);
}

template <class T>
T* CircListIterator<T>::next()
{
	current = current->link;
	return &(current->data);
}

#endif // !defined(AFX_CIRCLISTITERATOR_H__1E7F2B76_0A6C_411B_937F_AAC817E16B45__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -