sqlist.h

来自「题目:参加运动会的N个学校编号为1~N.比赛分成M个男子项目和W个女子项目,项目」· C头文件 代码 · 共 35 行

H
35
字号
/*sqlist.c*/


#define LIST_INIT_SIZE 20
#define LIST_INCREMENT 10

#define MAKE_SQLIST(TYPE,LISTNAME) struct _##LISTNAME\
								{\
								TYPE *elem;\
								int length;\
								int listsize;\
								}LISTNAME;


#define SQLIST_INIT(TYPE,LISTNAME) \
	LISTNAME##.elem=(TYPE *)malloc(LIST_INIT_SIZE*sizeof(LISTNAME)); \
	LISTNAME##.length=0; \
	LISTNAME##.listsize=LIST_INIT_SIZE;


#define SQLIST_INSERTBACK(TYPE,LISTNAME,ELEM,COPYFUNC) \
	if(LISTNAME##.length>=LISTNAME##.listsize-1) \
	{ \
	    LISTNAME##.elem=(TYPE*)malloc((LISTNAME##.listsize+LIST_INCREMENT)*sizeof(LISTNAME)); \
		LISTNAME##.listsize+=LIST_INCREMENT; \
	} \
	COPYFUNC(&##LISTNAME##.elem[LISTNAME##.length++],&##ELEM); \




#define MakeSqlist(type,listname) MAKE_SQLIST(type,listname)
#define SqlistInit(type,listname) SQLIST_INIT(type,listname)
#define SqlistInsertback(type,listname,elem,copyfunc) \
			SQLIST_INSERTBACK(type,listname,elem,copyfunc)

⌨️ 快捷键说明

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