数据结构与算法
文章平均质量分 52
pipi糖
这个作者很懒,什么都没留下…
展开
-
堆原理与用法
一. 常用堆函数 相关函数定义在头文件#include 1.创建堆 make_heap() make_heap()该函数默认生成大顶堆。有第3个参数,可以用来指定一个比较函数用于堆的排序。 vector<double> numbers{2.5,10.0,3.5,6.5,8.0,12.0,1.5,6.0}; //默认生成大顶堆 make_heap(begin(numbers), end(numbers));//{12 10 3.5 6.5 8 2.5 1.5 6} // make_heap(num原创 2021-04-25 22:02:39 · 142 阅读 · 0 评论 -
二叉树前序、中序、后序遍历、层序(广度优先)遍历、深度优先遍历具体代码实现
1. 前序遍历 // 递归实现 void preOrder(TreeNode* root){ if(root != nullptr){ cout<<root->data<<" "; preOrder(root->left); preOrder(root->right); } } // 迭代实现 void preOrder(TreeNode* root){ if(root == nullptr)原创 2021-04-25 20:34:31 · 162 阅读 · 0 评论 -
TRIE(前缀树)
Trie 树也称字典树、前缀树,单词查找树等,是一颗非典型的多叉树模型。 1. Trie树设计 // 节点表示 struct TrieNode { bool isEnd; //该结点是否是一个串的结束 TrieNode* next[26]; //字母映射表 }; 包含三个单词 “sea”,“sells”,“she” 的 Trie树,如下图所示: 2. Trie树常用操作 (1)插入 首先从根结点的子结点开始与 word 第一个字符进行匹配,一直匹配到前缀链上没有对应的字符,这时开始不断开原创 2021-04-14 16:48:49 · 120 阅读 · 0 评论