
数据结构
少喝烫水
嘘!
展开
-
二叉搜索树的后序遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路二叉搜索树根节点的值大于其左子树中任意一个节点的值,小于其右节点中任意一节点的值,这一规则适用于二叉查找树中的每一个节点。后序遍历先遍历左子树,再遍历右子树,最后访问根节点,在遍历左,右子树时,仍然先遍历左子树,然后遍历右子树,最后遍历根...原创 2020-04-06 21:30:56 · 175 阅读 · 0 评论 -
栈的压入、弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路将pushA数组压入栈中,每压入一个就用栈顶和popA比较,如果相等,就出栈,最...原创 2020-03-31 17:34:48 · 1695 阅读 · 0 评论 -
P1160 队列安排(数组模拟链表)
题目描述一个学校里老师要将班上N个同学排成一列,同学被编号为1~N,他采取如下的方法:1.先将1号同学安排进队列,这时队列中只有他一个人;2.2~N号同学依次入列,编号为i的同学入列方式为:老师指定编号为i的同学站在编号为1~i -1中某位同学(即之前已经入列的同学)的左边或右边;3.从队列中去掉M(M<N)个同学,其他同学位置顺序不变。在所有同学按照上述方法队列排列完毕后,老师想...原创 2018-09-23 17:41:12 · 241 阅读 · 0 评论 -
二叉树
先序遍历:根->左->右void order(Node*node){ if(node!=NULL){ cout<<node->date<<endl; preorder(node->left); preorder(node->right); }} 中序遍历:左->根->右void ord...原创 2018-09-29 11:36:23 · 122 阅读 · 0 评论 -
P1087 FBI树
题目描述我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2^N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:T的根结点为R,其类型与串S的类型相同;若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2...原创 2018-09-30 15:48:57 · 134 阅读 · 0 评论 -
牛客寒假算法基础集训营6 E海啸(一维数组模拟二维数组,二维前缀和)
链接:https://ac.nowcoder.com/acm/contest/332/E来源:牛客网 题目描述有一个沿海地区,可以看作有n行m列的城市,第i行第j列的城市海拔为h[i][j]。由于沿海,所以这个地区经常会发生海啸。海啸发生时,部分城市会被淹没,具体来说,海水高度会达到d,因此海拔低于d的城市都会被淹没。现在有q次询问,每次问你一个矩形区域中,有多少城市不会被淹没。...原创 2019-02-08 14:19:57 · 349 阅读 · 0 评论 -
单调栈
摘自https://blog.youkuaiyun.com/wubaizhe/article/details/701361741、定义单调栈是一种特殊的栈,其栈内的元素都保持一个单调性(单调递增或者递减)。单调递增栈,从栈底到栈顶依次递增(单调非递减栈:允许有相等) 单调递减栈,从栈底到栈顶依次递减(单调非递增栈:允许有相等)假设下图是一个栈内元素的排列情况(单调递增的栈):2、作用利...原创 2019-02-27 20:01:22 · 568 阅读 · 0 评论 -
链式前向星
#include <iostream>using namespace std;int cnt=1;struct Edge{ int e; int w; int next;}edge[10010];int head[10010]={0};void add(int s,int e,int w){ edge[cnt].e=e; edge[cnt].w=w; ...原创 2019-03-25 21:08:30 · 104 阅读 · 0 评论