问答题 设计算法将一棵以二叉链表存储的二叉树按顺序方式存储到一维数组中。(注:按层由上到下,由左到右)【东南大学2005数据结构部分四(15分)】
【正确答案】正确答案:按层次遍历二叉树,用队列存储结点,数组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)); if(t->rchild)QueueIn(Q,(p->ichild,2*i+1)) } cout<<"实际的最大下标= "<
【答案解析】