
数据结构
「已注销」
这个作者很懒,什么都没留下…
展开
-
集合
集合:由一个或多个确定的元素所构成的整体,集合中没有重复的数据头文件:#ifndef set_h#define set_h#include <stdio.h>#define set_size(set) ((set)->size);typedef struct SetElemenet_{ void *data; struct SetElemenet_* pre; struct SetElemenet_*next;}SetElem...原创 2020-07-09 17:37:53 · 152 阅读 · 0 评论 -
队列
队列就和生活中排队一样是一种先进先出的数据结构头文件:#ifndef queue_h#define queue_h#include <stdio.h>#define queue_size(queue) ((queue)->size)typedef struct QueueElement_{ void *data; struct QueueElement_ *next;} QueueElement,* QueueElement...原创 2020-07-08 11:58:55 · 153 阅读 · 0 评论 -
栈
栈是一种后进先出的队列,和摆放盘子一样,越是后面摆放上去的先拿掉头文件:#ifndef stack_h#define stack_h#include <stdio.h>#define stack_size(stack) ((stack)->size)typedef struct StackElement_{ void *data; struct StackElement_* next;}StackElement,*St...原创 2020-07-08 09:58:49 · 148 阅读 · 0 评论 -
双向循环链表
双向循环链表和单向循环链表类似,比单向循环链表多了一个前节点的引用头文件:#ifndef double_cycle_link_list_h#define double_cycle_link_list_h#include <stdio.h>#define dcList_size(list) ((list)->size)#define dclist_head(list) ((list)->head)#define dclist_tail(li...原创 2020-07-07 13:01:07 · 165 阅读 · 0 评论 -
单向循环链表
单向循环链表和单向链表类似,循环链表和链表不同之处是最后一个元素的next指针是否指向头部,循环链表会而单向链表不会头文件:#ifndef CYCLE_LINK_LIST#define CYCLE_LINK_LIST#include <stdio.h>#define clist_size(list) ((list)->size)#define clist_head(list) ((list)->head)#define clist_dat...原创 2020-07-07 12:16:29 · 114 阅读 · 0 评论 -
双向链表
双向链表顾名思义它是一个链表,而且是一个双向的,双向的意思就是一个节点即引用了前一个节点也引用了后一个节点,他可以双向遍历,和单向链表一个只不过每个节点比单向链表多了一个前节点的引用头文件:#ifndef DOUBLE_LINK_LIST_H#define DOUBLE_LINK_LIST_H#include <stdio.h>#define dlist_size(list) ((list)->size)#define dlist_head(lis...原创 2020-07-06 19:53:08 · 108 阅读 · 0 评论 -
单向链表
单向链表顾名思义它是一种链表,而且是单向的,每个元素会保存下一个元素引用,和数组类似,插入的时候比数组快,没有数据的移动先看头文件:#ifndef LINK_LIST_H#define LINK_LIST_H#define list_head(list) ((list)->head)#define list_tail(list) ((list)->tail)#define list_is_head(list,element) ((element)==(lis...原创 2020-07-05 19:09:33 · 131 阅读 · 0 评论