![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
a_cainiaoTxl
这个作者很懒,什么都没留下…
展开
-
Morris遍历
morris遍历实现二叉树的前中后序遍历代码。中序:后序:先右后左的前序遍历,再反转即得到后序遍历原创 2022-06-13 19:11:11 · 136 阅读 · 0 评论 -
二叉树前中后序迭代遍历通用模板
二叉树前中后序遍历,迭代写法原创 2022-06-13 18:10:16 · 156 阅读 · 0 评论 -
二叉树前中后序遍历最强统一迭代写法
刷leetcode,评论里面看到的,分享一下。这种写法的时间性能并不是最优解,但是它统一了前中后序遍历的迭代写法(只用移动左、右、自身结点进栈的顺序),很方便记忆!前序遍历:vector<int> preorderTraversal(TreeNode* root) { if(!root) return {}; vector<int> result; stack<TreeNode*> stk; s原创 2021-08-27 23:58:47 · 238 阅读 · 0 评论 -
递归算法的非递归实现例子
【问题描述】已知Ackerman函数定义如下:(1)根据定义,写出它的递归求解算法;(2)利用栈,写出它的非递归求解算法。【解答】(1)递归实现int Ackerman(int m,int n){ if(m==0) return n+1; if(n==0) return Ackerman(m-1,1); return Ackerman(m-1,Ackerman(m,n-1));}(2)非递归实现:设m=2,n=1,分析算法的递归过程如下图:.原创 2021-08-08 17:57:50 · 394 阅读 · 0 评论 -
N皇后问题的递归算法和非递归算法
【问题描述】在一个N*N的棋盘上,摆放N个皇后。满足:任何两个皇后不得在同一行、或者同一列、或者同一斜线。找出所有满足条件的布局。思路:假设前i-1行的皇后已经安放成功,现在要在第i行的适当列安放皇后,使得它与前i-1行安放的皇后在行方向、列方向和斜线方向冲突。为此,试探第i行的所有n个位置(列),如果某一列能够安放皇后,就可以递归到第i+1行继续寻找下一个皇后可安放的位置,一直到第n行。如果第i行的所有位置(列)都不能安放皇后,则回溯到i-1行,寻找i-1行下一个可以安放皇后的位置,如果在i-1找到下原创 2021-08-08 17:20:32 · 1044 阅读 · 0 评论