EM Blog

我们从未遇见, 听闻已是永别.

测试页

1级 2级 3级 超长3级ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd 4级 5级 6级 超长6级ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd

CMake 教程

0. 基本术语 configure 配置, 通过预配置文件产生完整的配置文件; generate 生成, 通过配置文件生成工程文件链接树; compile 编译, build 链接, project 工程, build tree 链接树. 1. 基本结构 1.1. 基本语法 函数名称不区分大小写, 但建议全大写. 变量名称区分大小写, 本文中内置变量均以全大写表示. FUNCTIO...

散列表基本操作

0. 数据结构 enum hashFlag: short { EMPTY = 0, INUSE = 1, DELETED = 2 }; typedef struct hashNode { int data_ = 0; hashFlag flag_ = EMPTY; } hashNode; typedef struct ht { hashNode* head_ = nullp...

平衡二叉树相关算法

0. 数据结构 typedef struct AVLNode { int bf_ = 0; int data_ = 0; AVLNode* lchild_ = nullptr; AVLNode* rchild_ = nullptr; } AVLNode, *AVLTree; 1. 构造函数 1.1. 计算结点的平衡因子 这里并不要求 tree 已经是平衡二叉树. int ...

链表数据结构

单、双链表的结点和生成

0. 单、双链表的实现和生成函数 #ifndef DS_LINKEDLIST_H_ #define DS_LINKEDLIST_H_ template <typename DataType> struct LNode { DataType data; LNode<DataType>* next; LNode() : next(nullptr) { mem...

二叉排序树相关算法

0. 数据结构 typedef struct TreeNode { int data = 0; TreeNode* lchild = nullptr; TreeNode* rchild = nullptr; } TreeNode, * BiTree; 1. 构造函数 BiTree buildBST(void) { std::cout << "A binary se...

线索二叉树相关算法

二叉树线索化及利用线索遍历二叉树

0. 数据结构 typedef struct TreeNode { int data = 0; TreeNode* lchild = nullptr; TreeNode* rchild = nullptr; } TreeNode, * BiTree; typedef struct ThreadTNode { int data = 0; bool ltag = false; //...

二叉树相关算法

求高度、共同祖先, 复制构造函数

1. 求二叉树的高度 1.1. 递归法 1.2. 非递归法 (层序遍历) 2. 求结点的共同祖先 (后序遍历) 截取遍历栈后反向比较找首个不同结点. TreeNode* ancestor(BiTree tree, TreeNode* p, TreeNode* q) { if (tree == nullptr) { return nullptr; } #define PU...

二叉树存储方式转换

存储方式转换及循环输入 API

0. 数据结构 typedef struct TreeNode { int data = 0; TreeNode* lchild = nullptr; TreeNode* rchild = nullptr; } TreeNode, * BiTree; 1. 链式存储初始化 1.1. 一般二叉树 (控制台输入) 相当于读取字符串, 转存为整型数据. #define _CRT_...

二叉树表达式解析与计算

本文中表达式只含二元运算符. 0. 数据结构 typedef struct TreeNode { char data = '\0'; TreeNode* left = nullptr; TreeNode* right = nullptr; } TreeNode, * BiTree; 1. 中缀表达式解析 2. 中缀表达式计算 (后序遍历) int calculate(BiT...