算法
文章平均质量分 53
liuhuiliang825378291
这个作者很懒,什么都没留下…
展开
-
集合
集合:由一个或多个确定的元素所构成的整体,集合中没有重复的数据 头文件: #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 · 109 阅读 · 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 · 96 阅读 · 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 · 110 阅读 · 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 · 114 阅读 · 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 · 86 阅读 · 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 · 77 阅读 · 0 评论 -
简单计算器
要实现计算器就需要明白什么是中缀表达式和什么实后缀表达式,中缀表达式即运算符在数字之间,后缀表达式就是运算符在数字之后,要实现计算器就需要把中缀表达式转化为后缀表达式,然后再计算后缀表达式 中缀表达式转后缀表达式的方法: 1.遇到操作数:直接输出(添加到后缀表达式中) 2.栈为空时,遇到运算符,直接入栈 3.遇到左括号:将其入栈 4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左...原创 2018-11-05 18:08:47 · 223 阅读 · 0 评论