数据结构
顾文繁
功不捐唐终入海
展开
-
第八届 蓝桥杯个人赛C/C++ 第一题迷宫 dfs非递归与递归实现
非递归实现在我的另一个博客 https://www.cnblogs.com/outxiao/p/13812184.html 这里写递归是实现原创 2021-04-14 09:53:12 · 186 阅读 · 0 评论 -
第十一届蓝桥杯研究生组E题C++
用二进制和并差集解决: 并查集通用代码 int father[N]; int visited[N]; int find(int n) { if(father[n]==n) return n; father[n]=find(father[n]); return father[n]; } void merge(int x,int y){ int x_father = find(x); int y_father = find(y); ...原创 2021-04-06 16:10:19 · 122 阅读 · 0 评论 -
最小堆
最小堆 定义 每个节点的值都小于或者等于其子节点的值的完全二叉树。 数的基本操作是插入节点和删除节点。 插入操作 对最小堆而言,它们都很简单。为了将一个元素X插入最小堆,我们可以在树的下一个空闲位置创建一个空穴。如果X的可以放入空穴中而不破坏堆序,则插入完成。否则就执行上虑操作,即交换空穴和它的父节点上的元素。不断执行上述过程,直到X可以呗放入空穴,则插入操作完成。 删除操作 最小堆的删除操作指的是删除其根节点上元素,并且不破坏堆序性质。执行删除操作时,我们需要现在根节点处创建一个.原创 2021-03-21 10:08:03 · 377 阅读 · 0 评论 -
二叉树前序中序后续遍历非递归实现
归纳一下二叉树的前序中序后续遍历非递归实现 vector<int> preOreder(TreeNode* root){ stack<TreeNode*>s; vector<int>ret; s.push(root); while(s.size()){ root = s.top();s.pop(); ret.push_back(root->.原创 2021-01-24 21:39:11 · 77 阅读 · 0 评论