cj_stack.h

来自「堆栈等代码」· C头文件 代码 · 共 72 行

H
72
字号
/******************************************************************************/
/*                                                                            */
/*  文件名:CJ_STACK.H                                                        */
/*  创建人:江华                                                              */
/*  日  期:2005-06-09                                                        */
/*  描  述:堆栈函数组包含文件		                                      	  */
/*                                                                            */
/*                                                                            */
/*  修改人:                                                                  */
/*  日  期:                                                                  */
/*  描  述:                                                                  */
/*                                                                            */
/******************************************************************************/
#ifndef CJ_STACK_H
#define CJ_STACK_H

#include "cj_define.h"
#include "cj_errmanager.h"
#include "cj_recordset.h"

#ifdef __cplusplus
extern "C" {
#endif

/*堆栈元素*/
typedef struct _TCJSKElemNode TCJSKElemNode;
typedef TCJSKElemNode * PTCJSKElemNode;
struct _TCJSKElemNode
{
	TCJSKElemNode *prev;	/*前一个结点指针,为NULL表示首节点*/
	TCJSKElemNode *next;	/*下一个结点指针,为NULL表示首节点*/
};

/*堆栈结构*/
struct _TCJSKStack
{
	TCJRSRecordSet enodes;	/*保存堆栈元素和数据的记录集  	    */
	PTCJSKElemNode stack_b;	/*堆栈栈底指针		            */
	PTCJSKElemNode stack_t;	/*堆栈栈顶指针		            */
	int stackcount;		/*堆栈元素个数			    */
	int nodesize;		/*堆栈结点元素大小		    */
	int datasize;		/*堆栈结点数据大小		    */
};
typedef struct _TCJSKStack TCJSKStack;
typedef TCJSKStack * PTCJSKStack;

/*堆栈初始化*/
int CJSKInitial(PTCJSKStack v_sk, TCJUINT4 v_size,TCJUINT4 v_initial, 
	TCJUINT4 v_next,TCJUINT4 v_maxexts,PTCJEMStack v_stack);

/*取栈顶元素*/
int CJSKGetTop(PTCJSKStack v_sk, void **v_ptr,PTCJEMStack v_stack);

/*压栈*/
int CJSKPush(PTCJSKStack v_sk, void * v_ptr, PTCJEMStack v_stack);

/*出栈*/
int CJSKPop(PTCJSKStack v_sk, void **v_ptr, PTCJEMStack v_stack);

/*栈是否空*/
int CJSKStackEmpty(PTCJSKStack v_sk, PTCJEMStack v_stack);

/*销毁栈*/
int CJSKDestroy(PTCJSKStack v_sk, PTCJEMStack v_stack);

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

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