} //结束Leaves 8.
bool Find(BtreeNode*BST,ElernType&item) {
while(BST!=NULL) {
if(item= =BST一>data){item=BST一>data; return true;} else if(item<BST一>data=BST=BST一>left;
else BST=BST一>right;
}
return false; } 9.
int Compare-List(SqList a, SqList b){
//a,b为顺序表,若ab时,返回1 i=0;
while (i<=a.length-1) && (i<=b.length-1) && (a.elem[i]=b.elem[i]) ++i; switch {
case i=a.length && i=b.length : return 0; break; case (i=a.length && i<=b.length-1)
||(i<=a.length-1 && i<=b.length-1 && a.elem[i] }//Compare-List 10. void MergeList(LinkList &a, LinkList &b, LinkList &c) { //已知单链表a和b的元素按值递增有序排列 //归并a和b得到新的单链表c,c的元素按值递减有序 c=a; p=a->next; q=b->next; c->next=NULL; while (p && q) if (p->data pn=p->next; p->next=c->next; c->next=p; p=pn; } else { qn=q->next; q->next=c->next; c->next=q; q=qn; } while (p) {pn=p->next; p->next=c->next; c->next=p; p=pn;} while (q) {qn=q->next; q->next=c->next; c->next=q; q=qn;} free(b); }//MergeList 11. Status Del-subtree(Bitree bt){ //删除bt所指二叉树,并释放相应的空间 if (bt) { Del-subtree(bt->lchild); Del-subtree(bt->rchild); free(bt); } 第21页共22页 return OK; }//Del-subtree Status Search-del(Bitree bt, TelemType x){ //在bt所指的二叉树中,查找所有元素值为x的结点,并删除以它为根的子树 if (bt){ if (bt->data=x) Del-subtree(bt); else { Search-Del(bt->lchild, x); Search-Del(bt->rchild, x); } } return OK; }//Search-Del 12. TelemType Maxv(Bitree T){ //返回二叉排序树T中所有结点的最大值 for (p=T; p->rchild; p=p->rchild); return p->data; }//Maxv TelemType Minv(Bitree T){ //返回二叉排序树T中所有结点的最小值 for (p=T; p->lchild; p=p->lchild); return p->data; }//Minv Status IsBST(Bitree T){ //判别T是否为二叉排序树 if (!T) return OK; else if ((!T->lchild)||((T->lchild)&&(IsBST(T->lchild)&&(Maxv(T->lchild) &&((!T->rchild)||((T->rchild)&&(IsBST(T->rchild)&&(Minv(T->rchild)>T->data))) return OK else return ERROR; }//IsBST 第22页共22页 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据结构复习题及参考答案(5)在线全文阅读。
相关推荐: