数据结构,谁能告诉我flag1和flag0是判断什么的?

如题所述

第1个回答  2016-05-19
flag为0时代表当前这个字符是要作为Stack数组里上一个元素的左孩子lchild插入的,flag为1时则代表的是要作为右孩子rchild插入的。追问

可以给我解释一下这个程序的大概思路吗?我们几个人都没怎么看懂…

追答

程序里的if语句一共有三个执行体
先看最后那个,就是else {...}里的语句。这里面申请了一个新的二叉树节点,
并且当flag==0时,就将新节点连接到上一个节点的lchild上,
而flag==1时,就将新节点连接到上一个节点的rchild上,并且把flag置回0。
接着看else if里的语句。这里面在当前ch[i]为@并且flag为0时,把flag置为1。
从上面这俩个部分可以看出来,ch数组里一旦遇到@字符,其后面的那个字符就是右子树节点,例如一字符串 12345@6789,那么12345这五个就会创建出5个左子树节点,而6就会创建出一个右子树节点,接着789则创建出3个左子树节点。
最后我们看第一个if语句里的执行体。这里面将top一直回退到了把当前节点当成右子树节点的最上层的那个根节点。并且,执行这个动作的条件是遇到连续两个@@字符,例如一字符串12@3@@456,12会创建出两个左子树节点,3则作为2的右子树节点被创建出来,接着4则会作为2的左子树节点被创建出来,5接着作为4的左子树节点,6作为5的左子树节点。

追问

太感谢啦!

本回答被提问者和网友采纳

数据结构,谁能告诉我flag1和flag0是判断什么的?
flag为0时代表当前这个字符是要作为Stack数组里上一个元素的左孩子lchild插入的,flag为1时则代表的是要作为右孩子rchild插入的。

在算法框图中flag 1或flag 0是什么意思?(要具体点的)
先讲输入与输出变量的含义:t是采样时间,x是状态变量,u是输入(是做成simulink模 块的输入),flag是仿真过程中的状态标志(以它来判断当前是初始化还是运行等);sys输出根据flag的不同而不同(下面将结合flag来讲sys的含义),x0是状态变量的初始值,str是保留参数(mathworks公司还没想好该怎么用...

计算机二级VFP中代码flag=0,flag=1什么意思?
这个应该贴一下源码的,一般flag=0都是用作控制变量,先赋值flag=0,然后根据各种条件的执行,flag可能会繁盛变化,最后通过判断flag的值来确定结果. 也就是flag本身并不是程序中重要的信息数据,只是一种控制变量,

c语言flag=0 或者flag=1什么意思
flag不是c语言的关键字,其通常用来作为一个指示变化的变量的名称,C语言中一般设置一个变量flag,是一个来表示判断的变量,当做标志。例如当一种情况的时候,置flag为1,当另外一种情况时,置flag为2。 变量名为flag,只是习惯问题,也可以取别的名字。例:设置标志,如:A事件和B事件 A事件正在发...

单片机中定义flag有啥作用flag=1和flag=0都是什么意思
奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。以上内容参考:百度百科-FLAG ...

数据结构:循环队列判断队列空满的方法
设立一个标志位,比如说是flag 最开始时队列为空,设flag=0 当入队的时候让flag=1 出队的时候flag=0 然后再加上判断队头队尾指针是否重合 重合,且flag=0,则为空 重合且flag=1,则为满

flag = 0;flag = 1;是什么意思,代表着什么,关于flag有什么知识点
例如 flag = 0; 表示状态 0; flag = 1; 表示状态 1。 flag = 2; 表示状态 2。至于 什么是 状态 0,什么是 状态 1,...没有统一规定,完全看程序员的喜好。例如 用状态 0 表示 假,表示事件未发生,用状态 1 表示 真,表示事件发生了。下面函数,用于判断 n 是不是素数。 如果 函...

c语言flag=0 或者flag=1什么意思
flag=0表示给变量flag赋值0,flag=1表示赋值为1。flag 有标志的意思,通常在C语言中用来作为标志位,有两种状态:0和1,通常集中存放在内存中固定的区域里。程序在某种状态改变的同时改变flag的值,并在其他操作中通过flag了解状态,并决定接下来的操作。换句话说,flag可以用来帮助程序做复杂条件的判断...

...不过我还有点不明白的是:那个flag=1或flag=0
当只有1位数的时候, 自然不是回文数,所以flag =0;两位数的时候,c==d才是回文,否则不是;三位数的时候, 只有b==d的时候才是。四位数的时候, 需要两个条件, 即a==d和b==c同时成立。判断结束后, 如果flag是真,那么才记数+1,然后打印该数;每次循环前, 都要把flag复位为“假...

单片机中定义flag有啥作用flag=1和flag=0都是什么意思?
标志已经按下一次了。所以你这样写:if(fk1==0){ flag=1;} if(flag==1){ shanshuo();} 这样写后你按下一次就标志你曾经到过if(K1==0)这个语句,就一直保持闪烁 这只是一个例子,标志位只是告诉单片机曾经来过这个地方,做个标记,记录下来,别让下次的动作影响到我,导致混乱 ...

相似回答