int main(void) { search_bfs(a[0]); head = 0; while(qc > 0) putchar(outqueue()); putchar('\n'); destory(); return 0; }
void floortraverse(TREE T){ TREE p; LinkQueue Q; initqueue(&Q);p=T; inqueue(&Q,p); while(queueempty(Q)){ outqueue(&Q,&p); print(p->data); if(p->left) inqueue(&Q,p->left); if(p->right) inqueue(&Q,p->right); } }
void outdegree2(TREE T){ TREE p; LinkQueue Q; int flag1=0,flag2=0,n0=0,n1=0,n2=0; initqueue(&Q);p=T; inqueue(&Q,p); while(queueempty(Q)){ outqueue(&Q,&p); if(p->left) {inqueue(&Q,p->left);flag1=1;} if(p->right){inqueue(&Q,p->right);flag2=1;} if(flag1&&flag2) n2++; else if(!flag1&&!flag2) n0++; else n1++; flag1=flag2=0; } printf("出度为0的节点数目:%d\n",n0); printf("出度为1的节点数目:%d\n",n1); printf("出度为2的节点数目:%d\n",n2); }