数据结构
Zom_b
这个作者很懒,什么都没留下…
展开
-
n皇后问题
N皇后问题通过递归回溯来实现n皇后的摆放位置,下面是自己实现的代码,思路写在代码注释里,可以详细看看代码。class Solution {public: //标记mark数组 void remark(int x,int y,vector<vector<int>> &mark) { if(x >= mark.size() || y >= mark.size()) { retur原创 2021-05-14 15:44:27 · 184 阅读 · 0 评论 -
用栈实现简易计算器
#include <iostream>#include<stack>#include<ctype.h>#include<string>#include<cstdlib>#include <algorithm>using namespace std;string SuffixtoIn();void Calculator(const string&);int main(){ Calculator(Suf原创 2021-05-03 21:15:03 · 208 阅读 · 0 评论 -
直接插入排序和希尔排序
一、直接插入排序直接插入排序和希尔排序都为插入排序类,因此将其归类到一块。插入排序是指:将数组当前元素插入到该元素之前的有序序列中,即将数组从头到尾进行遍历,依次将元素插入到前面有序数组中相应的位置而从头到尾开始遍历可以保证遍历到某个元素时前面的数组是有序的具体步骤:从头到尾遍历数组元素然后从当前元素往前遍历有序数组,找到比该元素值还要小的元素数组索引将该索引到当前元素索引之间的数组后移最后将当前元素插入到有序数组中具体的代码:vector<int> InsertS原创 2021-03-16 21:15:57 · 524 阅读 · 0 评论 -
非递归遍历二叉树实现和理解
非递归遍历二叉树1.前言 总所周知,二叉树的遍历分为先序遍历、中序遍历和后序遍历。遍历的顺序不同,则结果不同。而遍历方法也分递归和非递归。而二者的复杂度相同:时间复杂度为O(nlgn),空间复杂度为O(n) 。 虽然递归的二叉树逻辑简单,但是通过递归调用可能会浪费多余的栈空间资源,因此非递归遍历也是十分有用的,相比起递归遍历,其会占用更少的栈资源。2.非递归遍历的实现 非递归遍历二叉树是通过循环来实现的,在逻辑上相比起递归要稍微复杂一些,需要借用到stack(栈)数据结构。因为遍历时必须根节原创 2020-12-05 23:17:29 · 588 阅读 · 0 评论