📄 link.h
字号:
#ifndef _LINK_H_
#define _LINK_H_
#ifndef C_CLASS
#define C_CLASS struct
#endif
typedef struct _node
{
void *data;
struct _node *prior;
struct _node *next;
}NODE;
C_CLASS LINKLIST
{
/*链表初始化*/
C_CLASS LINKLIST* THIS;
NODE* head;
NODE* rearptr;
int count;
/*尾节点插入*/
void (*insert_rear)(C_CLASS LINKLIST* THIS,void *data,int size);
/* 根据key值,并通过一定的比较算法cmp获取链表中的结点 */
NODE* (*get_node_by_key)(C_CLASS LINKLIST* THIS,char* key,int (*condition)(void *p1,void *p2));
/* 获取结点在链表中的位置 */
int (*get_index_by_key)(C_CLASS LINKLIST* THIS,char* key,int (*condition)(void *p1,void *p2));
/* 根据key值,并通过一定的比较算法cmp删除链表中的结点 */
int (*delete_node_by_key)(C_CLASS LINKLIST* THIS,char* key,int (*condition)(void *p1,void *p2));
/*根据下标index返回这个下标的结点*/
NODE* (*get_node_by_index)(C_CLASS LINKLIST* THIS,int index);
int (*delete_node_by_index)(C_CLASS LINKLIST* THIS,int index);
int (*replace_node_by_index)(C_CLASS LINKLIST* THIS,int index,void *data,int size);
void (*clear_link)(C_CLASS LINKLIST* THIS);
/* 删除链表结点,但是不删除头结点 */
void (*del)(C_CLASS LINKLIST* THIS);
};
/*链表的初始化*/
void link_init(C_CLASS LINKLIST* link);
/*插入到尾结点*/
void link_insert_rear(C_CLASS LINKLIST* link,void *data,int size);
/* 根据key值,获取结点 */
NODE* link_get_node_by_key(C_CLASS LINKLIST* link,char* key,int (*condition)(void *p1,void *p2));
/* 获取结点在链表中的位置 */
int link_get_index_by_key(C_CLASS LINKLIST* link,char* key,int (*condition)(void *p1,void *p2));
/* 根据key值删除结点 */
int link_delete_node_by_key(C_CLASS LINKLIST* link,char* key,int (*condition)(void *p1,void *p2));
/*根据下标index返回这个下标的结点*/
NODE* link_get_node_by_index(C_CLASS LINKLIST* link,int index);
int link_replace_node_by_index(C_CLASS LINKLIST *link,int index,void *data,int size);
int link_delete_node_by_index(C_CLASS LINKLIST *link,int index);
void link_clear(C_CLASS LINKLIST* link);
/* 删除链表有效结点,不包括头结点 */
void link_del(C_CLASS LINKLIST* link);
C_CLASS LINKLIST salelist;
C_CLASS LINKLIST update_salelist;
void init_node(NODE* n);
NODE* create_node(void *data,int size);
void free_node(NODE *n);
#endif /* _LINK_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -