二叉排序树的判定(北林OJ288) 描述 假设二叉树每个结点的元素均为一个单字符,根据给定的字符序列按照先序遍历的顺序递归创建该树的二叉链表,然后判断该二叉树是否为二叉排序树。 输入 多组数据,每组数据有一行。每行为一个二叉树对应的前序序列(其中‘’表示空树)。当序列为“”时,输入结束。 输出 每组数据输出1行,若此二叉树为二叉排序树则输出“YES”,否则输出“NO”。 输入样例1  bac cab 输出样例1 YES NO 根据定义判断 二叉树的定义: 二叉排序树或者是一棵空树或者是具有下列性质的二叉树 若它的左子树不空则左子树上所有节点的值均小于它根节点的值 若它的右...

栈的基本操作 include<iostream> usingnamespacestd; defineOK1 defineERROR0 defineMaxSize100 typedefintElemType; //定义栈_顺序栈 structStack { ElemTypetop; ElemTypebase; intstacksize; }; intIsFull(Stacks); intIsEmpty(Stacks); //初始化 intInitStack(Stack&s) { s.base=newElemType[MaxSize]; if(!s.base) ...

  JVvkXf0ZfMJV   2023年11月02日   40   0   0 链表StackStack链表

假设二维数组中共有n个元素(注意,此处的n不是二维数组的行数,也不是二维数组的列数,而是二维数组的元素的总个数) 思路一:将数组中的每个元素分别与数组中的所有元素做比较,这种是最简单粗暴的方法 时间复杂度:O(N^2) 空间复杂度:O(1) 思路二:是思路一的改进,将数组中的元素分别与其前面的每个元素做比较。 下标为1的元素与前面的下标为0的元素做比较。下标为2的元素与前面的下标为01的元素比较。 思路二的时间复杂度:O(N^2) 计算:0+1+2+……+n-1=(n-1)n/2 空间复杂度:O(1) 上面两种方法的时间复杂度都太高,而且用的方法都是逐个比较。 思路三:先将数组排序,然后再判...

括号匹配 //括号的匹配 intmatching() { Stacks; InitStack(s); intflag=1; charch[10]="[(]]"; //读入 //cin>>ch; inti=0; while(ch[i]!=''&&flag!=0)//假设字符串以结尾 { if(ch[i]'('||ch[i]'[') { PushbackStack(s,ch[i]);//入栈 } if(ch[i]')'||ch[i]']') { if(IsEmpty(s)) { flag=0; b...

  JVvkXf0ZfMJV   2023年11月02日   15   0   0

include<iostream> usingnamespacestd; defineOK1 defineERROR0 defineMaxSize100 typedefintElemType; //定义栈_顺序栈 structStack { ElemTypetop; ElemTypebase; intstacksize; }; intIsFull(Stacks); intIsEmpty(Stacks); //初始化 intInitStack(Stack&s) { s.base=newElemType[MaxSize]; if(!s.base) returnE...

思路1:(较易理解) include<iostream> include<iomanip> usingnamespacestd; defineOK1 defineERROR0 defineMaxSize100 typedefdoubleElemType; //定义栈_顺序栈 structStack { ElemTypetop; ElemTypebase; intstacksize; }; intIsFull(Stacks); intIsEmpty(Stacks); //初始化 intInitStack(Stack&s) { s.base=newEle...

  JVvkXf0ZfMJV   2023年11月02日   47   0   0 StackStack
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~