
数据结构
haoke_cn
这个作者很懒,什么都没留下…
展开
-
数据结构 - 红黑树
文章目录介绍编码细节介绍红黑树可以在 O(logN)O(logN)O(logN) 时间内完成查找,插入,删除操作。相比 AVL ,牺牲了部分平衡性以在插入、删除操作时减少旋转操作,整体性能优于 AVL。 C++ STL 的 map 就是用红黑树实现的。满足以下 5 个条件:每个节点非黑即红视为树(包含部分子树)的根节点是黑色的叶节点 (NIL) 是黑色的如果一个节点是红色,则它的两个子节点是黑色的从根节点出发到所有叶节点的路径上,黑色节点数量相同4、5 两条规则使得红黑树从根节点到每原创 2020-12-23 13:42:55 · 143 阅读 · 0 评论 -
数据结构 - 森林与并查集
文章目录使用场景C 实现C++ 实现使用场景并查集常用于操作不相交集合,判断或操作相关联关系,类似将森林中的两棵树进行合并C 实现quick_find 算法,将同属于一区块的集合进行 “染色” 判断#include <stdio.h>#include <stdlib.h>typedef struct UnionSet { int *color; int n;} UnionSet;UnionSet *init(int n) { UnionSet *u = (原创 2020-12-02 10:22:04 · 128 阅读 · 0 评论 -
数据结构 - 优先队列与堆
文章目录使用场景C 实现C++ 实现使用场景某些情况下要让高优先级的元素先出队,优先队列实际上是用堆实现的。C 实现priority_queue 优先队列#include <stdio.h>#include <stdlib.h>#include <time.h>#define swap(a, b) { \ __typeof(a) __temp = a; \ a = b; b = __temp; \}typedef struct p原创 2020-12-02 10:21:54 · 218 阅读 · 0 评论 -
数据结构 - 哈希表
文章目录使用场景C 实现C++ 实现使用场景空间换时间,记录一些数据根据映射结果取C 实现#include <stdio.h>#include <stdlib.h>#include <string.h>// 链表解决冲突typedef struct Node { char *str; struct Node *next;} Node;typedef struct HashTable { Node **data; i原创 2020-12-02 10:21:42 · 115 阅读 · 0 评论 -
数据结构 - 排序与查找
文章目录使用场景稳定排序C 实现C++ 实现不稳定排序C 实现C++ 实现查找C 语言实现C++ 实现使用场景了解各个排序的特性,针对排序好的序列进行查找稳定排序C 实现#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#define swap(a, b) { \ a ^= b; b ^= a; a ^= b; \}// 宏书写,方原创 2020-12-02 10:21:32 · 328 阅读 · 0 评论 -
数据结构 - 树与二叉树
文章目录使用场景C 实现C++ 实现使用场景树遍历关系C 实现#include <stdio.h>#include <stdlib.h>#include <time.h>typedef struct Node { int data; struct Node *lchild, *rchild;} Node;typedef struct Tree { Node *root; int n;} Tree;Node *g原创 2020-12-02 10:21:18 · 85 阅读 · 0 评论 -
数据结构 - 栈和队列
文章目录使用场景栈C 语言实现C++ 实现队列C 语言实现C++ 实现使用场景栈用来回溯和匹配一些进出情况,队列用来先进先出,实际应用中可用来缓冲一些请求栈C 语言实现#include <stdio.h>#include <time.h>#include <stdlib.h>#define COLOR(a, b) "\033[" #b "m" a "\033[0m"#define GREEN(a) COLOR(a, 32)typedef stru原创 2020-12-02 10:21:06 · 76 阅读 · 0 评论 -
数据结构 - 顺序表和链表
文章目录使用场景C 实现C++ 实现使用场景顺序表直接查找,链表空间方便阔容插入删除方便C 实现顺序表#include <stdio.h>#include <stdlib.h>#include <time.h>#define COLOR(a, b) "\033[" #b "m" a "\033[0m"#define GREEN(a) COLOR(a, 32)typedef struct Vector { int *data; in原创 2020-12-02 10:20:29 · 100 阅读 · 0 评论