02 2020 档案
树、森林与二叉树的转换
摘要:数转换成二叉树:使用孩子兄弟表示法。 二叉树转换成树:将二叉树的右孩子转换成兄弟。 森林转换成二叉树:将森林中的每一棵树都转换成二叉树,然后把森林中每个结点连起来,调整角度,使其成为二叉树形状。 二叉树转换成森林:将二叉树分成n个互不相交、没有右子树的二叉树,然后将每个二叉树都转换成树。 阅读全文
posted @ 2020-02-14 20:14 eason66 阅读(705) 评论(0) 推荐(0)
树的遍历
摘要:树的遍历有3种:先根遍历、中根遍历、后根遍历; 先根遍历:如果该二叉树为空树,则空操作,否则先访问根结点,再先根遍历左子树,最后先根遍历右子树。 1 //该二叉树用二叉链表存储,结点类型BiTreeNode 2 void pre_oder(BiTreeNode *root){ 3 if(root!= 阅读全文
posted @ 2020-02-14 14:02 eason66 阅读(836) 评论(0) 推荐(0)
单调队列
摘要:1.单调队列简介: 单调队列是一种数据结构,类似如单调栈,但里面的元素必须在一个区间内,如果“过时”就要出队。所以,单调队列可以在两端进行出队,但只能再队尾入队。按此性质,传统的队列已无法满足需求,需要使用双端队列,再C++的STL里,双端队列定义在deque里: #include <deque> 阅读全文
posted @ 2020-02-07 16:57 eason66 阅读(405) 评论(0) 推荐(0)
单调栈
摘要:1.单调栈简介 单调栈是一种数据结构,它里边存放的数据具有单调性,每个元素都只进栈一次,进栈时会把破坏栈的单调性的元素弹出。用代码表示就是: 1 stack <int> s;//单调栈,单调递增 2 int index;//要进栈的元素 3 while(!s.empty()&&s.top<index 阅读全文
posted @ 2020-02-07 14:16 eason66 阅读(595) 评论(0) 推荐(0)
结题报告
摘要:题目:看图 思路: 找规律,我们发现这个序列为10110101 10110101 10110101 …… 按照找到的规律,用循环数组就行了。 犯的错误: sum没清0。 收获: 变量累加之前要清0。 代码: 1 #include <iostream> 2 using namespace std; 3 阅读全文
posted @ 2020-02-07 11:00 eason66 阅读(123) 评论(0) 推荐(0)
结题报告
摘要:题目:点此 描述: 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右 阅读全文
posted @ 2020-02-07 10:34 eason66 阅读(330) 评论(0) 推荐(0)
结题报告
摘要:题目:点此。 题意描述: 任何一个正整数都可以用2的幂次方表示。例如: 137=27+23+20 同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7=22+2+20(21用2表示) 3=2+20 所以最后137可表示为: 2(2(2 阅读全文
posted @ 2020-02-07 10:02 eason66 阅读(279) 评论(0) 推荐(0)
结题报告
摘要:题目:点此 优先队列思路:{ 先读入,读入的数据放入优先队列,再循环:{ 取出两个数,把这两堆果子合并,记录耗费体力并保存合并后果子的重量。 } 输出。 } 暴力思路:{ 与优先队列没什么区别,只是放入优先队列改成了用插入排序或冒泡排序确定放的位置。 } 犯的错误:{ 1.函数内要改变的值做参数时应 阅读全文
posted @ 2020-02-03 18:10 eason66 阅读(222) 评论(0) 推荐(0)