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

📄 queue.h

📁 show to use C/C++ do system test.
💻 H
字号:
#ifndef	QUEUE_H
#define	QUEUE_H


typedef enum {
	UDEF = 0,
	FIFO,
	LIFO,
	INCR,			// INCREASE
	DECR			// DECREASE
} QRULE;


class  ELEMENT {
	friend class   QUEUE;
public:
	ELEMENT()  { _construct(); }
	virtual ~ELEMENT()  { _destruct(); }
	QUEUE     *get_container();
	ELEMENT   *get_prev();
	ELEMENT   *get_next();
	void       set_key( real64 k1 = 0, real64 k2 = 0, real64 k3 = 0, real64 k4 =0 );
private:
	void   *_data;
	int     _construct();
	int     _destruct();
};


class  QUEUE {
public:
	QUEUE( QRULE r0 = FIFO )  { _construct( r0 ); }
	virtual ~QUEUE()  { _destruct(); }
	int    set_rule( QRULE r1 = UDEF, QRULE r2 = UDEF, QRULE r3 = UDEF, QRULE r4 = UDEF );
	int    insert( ELEMENT *element );
	int    remove( ELEMENT *element );
	void   reset_meter();
	void   clear();
	ELEMENT   *pop_head();
	ELEMENT   *get_head();
	ELEMENT   *get_tail();
	uint32     get_length();
	uint32     get_minlen();
	uint32     get_maxlen();
	real64     get_avglen();
private:
	void   *_data;
	int     _construct( QRULE r0 );
	int     _destruct();
	int     _requeue();
	int     _compare_key( real64 *nxtkey, real64 *newkey, uint08 *rule, uint08 level );
};


#endif

⌨️ 快捷键说明

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