以二叉链表为存储结构,分别实现二叉树的下列运算:
(1)PARENT(BT,p,X);
(2)CREATE(X,LBT,RBT);
(3)DELLEFT(BT,X)。
以二叉链表为存储结构,分别实现二叉树的下列运算:
(1)PARENT(BT,p,X);
(2)CREATE(X,LBT,RBT);
(3)DELLEFT(BT,X)。
【正确答案】:(1)BinTree PARENT(BinTree BT,BinTree p,DataType X) //调用前P为空指针 {if(BT!=NULL)if(BT一>data==X)return(p); //找到,返回其父结点 else{p=BT; PARENT(BT一>lchild,P,X); //查找其左子树 PARENT(BT一>rchild,P,X); //查找其右子树 } } (2)void CREATE(DataType X,BinTree LBT,BinTree RBT) { BT=malloc(sizeof(BinTree)); //申请根结点 BT一>data=X;BT一>lchild=LBT;BT一>rchild=RBT; } (3)void DELLEFT(BinTree BT,DataType X) {if(BT!=NULL)if(BT一>data==X) {BT一>lchild=NULL;BT一>rchild=NULL;) else{DELLEFT(BT一>lchild,X); DELLEFT(BT一>rchild,X);) }
Top