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

📄 cj_stack.h

📁 堆栈等代码
💻 H
字号:
/******************************************************************************/
/*                                                                            */
/*  文件名: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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -