circlistiterator.h

来自「数据结构答案 金元平」· C头文件 代码 · 共 66 行

H
66
字号
// 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 + =
减小字号Ctrl + -
显示快捷键?