填空題

下面算法實現,用一棵二叉樹中的結點建立一個按關鍵字值從小到大次序排列的帶表頭結點的雙向循環(huán)鏈表。二叉樹的結點結構如下所示:

其中,p是指向結點的指針;p->key表示結點的關鍵字域,p->left和p->right分別表示結點的左、右孩子的指針域。
void fromtreetolist(p,l)
/*p,h是指向二叉樹中結點的指針,*/
/*l是指向雙向循環(huán)鏈表表頭結點的指針*/
{if (p!=NULL)
{ fromtreetolist(p->left,l);
fromtreetolist(p-> right,l);
h=l;
while (h->right!=l)&&(h->right->keykey)h=h->right;
p->right=h->right;
p->left=h;
();
h->rihght=p;
}
}
void buildlisttree(root,l)
/*root是指向二叉樹根結點的指針,*/
/*l是指向雙向循環(huán)鏈表表頭結點的指針*/
{l=(struct nodetype *)malloc(sizeof(struct nodetype));
l->left=l;
l->right=l;
fromtreetolist(root,l);
}


您可能感興趣的試卷

你可能感興趣的試題