采用深度或者广度遍历就可以,分别采用栈或者队列结构。对于访问到的每个节点,如果度为2,就是所求的。比如用栈的话 push(ST,root)while(not empty(ST)){ node=pop(ST)if(node->left)push(ST,node->left)if(node->right)push(ST,node->right)} 上面的伪代码实际上就是图的深度遍历,二叉树...
∥深度h的二叉树存储于一维数组BT[1:2h-1]中,本算法生成该二叉树的二叉链表存储结构 { tnode tq; ∥tq是队列元素 int len=2h-1; ∥数组长度 T=(BiTree)malloc(sizeof(BiNode)); ∥申请结点 T->data=BT[1]; ∥根结点数据 tq.bt=T;
2.已知深度为h的二叉树采用顺序存储结构已存放于数组BT1:2-1中,请写一非递归算法,产生该二叉树的二叉链表结构.设二叉链表中链结点的构造为( lchild, data
已知深度为h的二叉树采用顺序存储结构已存放于数组BT[1..2 h 一1]中,请写一非递归算法,产生该二叉树的二叉链表结构。设二叉链表中链结点的构造为(lchild,da