1、设二叉树采用二叉链表方式存储,root指向根结点,r所指结点为二叉树中任一给定的结点。则可以通过改写()算法,求出从根结点到结点r之间的路径。A.先序遍历B.中序遍历C.后序遍历D.层次遍历
1、设二叉树采用二叉链表方式存储,root指向根结点,r所指结点为二叉树中任一给定的结点。则可以通过改写()算法,求出从根结点到结点r之间的路径。
A.先序遍历
B.中序遍历
C.后序遍历
D.层次遍历
参考答案和解析
按层次遍历二叉树用队列存储结点数组A按完全二叉树存储初始化A的各元素都是null。核心语句段如下: QueueIn(Q(bt1)); //二叉树根结点指针和参数1入队列. while(!QueueEmpty(Q)) {qq=QueueDel(Q); p=qq.t;i=qq.i; A[i]=P一>data;last=i; //数据存入数组i是当前最大下标 if(p一>lchild) QueueIn(Q(p一>ichiid2*i)); 按层次遍历二叉树,用队列存储结点,数组A按完全二叉树存储,初始化A的各元素都是null。核心语句段如下:QueueIn(Q,(bt,1));//二叉树根结点指针和参数1入队列.while(!QueueEmpty(Q)){qq=QueueDel(Q);p=qq.t;i=qq.i;A[i]=P一>data;last=i;//数据存入数组,i是当前最大下标if(p一>lchild)QueueIn(Q,(p一>ichiid,2*i));
相关考题:
某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第l层)( )。A.3SX 某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第l层)( )。A.3B.4C.6D.7
阅读以下说明,回答问题1~4,将解答填入对应的解答栏内。[说明] 假设二叉树采用连接存储结构进行存储,root 指向根接点,p 所指结点为任一给定的结点,编写一个求从根结点到p所指结点之间路径的函数。void path (root, p)btree * root, * p;{Btree *stack[m0], *s;int tag[m0], top =0, i, find =0;s =root;do{while (s ! = NULL){stack [top] = s;tag[top] =0;((1))}if (top >0){((2))if (tag[top] = =1){if((3)){for (i=1; i< =top; i+ + printf ("%d" ,stack[i]- >data);find=1;}else top - -;}if((4)){p=p- >right;((5))}}} while (find || (s! = NULL top ! =0));}
阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。【说明】一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点;否则,从树根的左子树根出发,沿结点的左子树分支向下查找,直到某个结点不存在左子树时为止,该结点即为此二叉树的“最左下”结点。例如,下图所示的以 A为根的二叉树的“最左下”结点为D,以C为根的子二叉树中的“最左下”结点为C。二叉树的结点类型定义如下:typedef stmct BSTNode{int data;struct BSTNode*lch,*rch;//结点的左、右子树指针}*BSTree;函数BSTree Find Del(BSTree root)的功能是:若root指向一棵二叉树的根结点,则找出该结点的右子树上的“最左下”结点*p,并从树于删除以*p为根的子树,函数返回被删除子树的根结点指针;若该树根的右子树上不存在“最左下”结点,则返回空指针。【函数】BSTrce Find_Del(BSTreeroot){ BSTreep,pre;if ( !root ) return NULL; /*root指向的二叉树为空树*/(1); /*令p指向根结点的右子树*/if ( !p ) return NULL;(2); /*设置pre的初值*/while(p->lch){ /*查找“最左下”结点*/pre=p;p=(3);}if ((4)==root) /*root的右子树根为“最左下”结点*/pre->rch=NULL;else(5)=NULL; /*删除以“最左下”结点为根的子树*/reurn p;}
前序遍历序列与中序遍历序列相同的二叉树为(1),前序遍历序列与后序遍历序列相同的二叉树为(2)。A.根结点无左子树的二叉树B.根结点无右子树的二叉树C.只有根结点的二叉树或非叶子结点只有左子树的二叉树D.只有根结点的二叉树或非叶子结点只有右子树的二叉树
某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。A.3SX 某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。A.3B.4C.6D.7
某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。 A.3S 某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。A.3B.4C.6D.7
后序遍历序列与中序遍历序列相同的二叉树为(85),前序遍历序列与后序遍历序列相同的二叉树为(86)。A.根结点无左子树的二叉树B.根结点无右子树的二叉树C.只有根结点的二叉树或非叶子结点只有左子树的二叉树D.只有根结点的二叉树或非叶子结点只有右子树的二叉树
先序遍历序列和中序遍历序列相同的二叉树为()。A.根结点无左子树的二叉树B.根结点无右子树的二叉树C.只有根结点的二叉树或非子结点只有左子树的二叉树D.只有根结点的二叉树或非叶子结点只有右子树的二叉树
某二叉树如图所示,若进行顺序存储(即用一维数组元素存储该二叉树中的结点且通过下标反映结点间的关系,例如,对于下标为i的结点,其左孩子的下标为2i、右孩子的下标为2i+1),则该数组的大小至少为(请作答此空);若采用三叉链表存储该二叉树(各个结点包括结点的数据、父结点指针、左孩子指针、右孩子指针),则该链表的所有结点中空指针的数目为( )。A.6B.10C.12D.15
某二叉树如图所示,若进行顺序存储(即用一维数组元素存储该二叉树中的结点且通过下标反映结点间的关系,例如,对于下标为i的结点,其左孩子的下标为2i、右孩子的下标为2i+1),则该数组的大小至少为(58);若采用三叉链表存储该二叉树(各个结点包括结点的数据、父结点指针、左孩子指针、右孩子指针),则该链表的所有结点中空指针的数目为(59)。A.6B.8C.12D.14
对于非空的二叉树,设D代表根结点,L代表根结点的左子树R代表根结点的右子树。若对下图所示的二叉树进行遍历后的结点序列为7 6 5 4 3 2 1,则遍历方式是( )。A.LRDB.DRLC.RLDD.RDL
对于前序遍历与中序遍历结果相同的二叉树为()A、一般二叉树B、只有根结点的二叉树C、根结点无左孩子的二叉树D、根结点无右孩子的二叉树E、所有结点只有左子数的二叉树F、所有结点只有右子树的二叉树
判断题二叉树中除叶结点外, 任一结点X,其左子树根结点的值小于该结点(X)的值;其右子树根结点的值≥该结点(X)的值,则此二叉树一定是二叉排序树。A对B错