欢迎来到天天文库
浏览记录
ID:48042200
大小:19.00 KB
页数:2页
时间:2020-01-20
《1试编写判断二叉树是否为二叉排序树 (2) 2.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1试编写判断二叉树是否为二叉排序树Voidis_but(BSTreebt){Btreep,pre,s[maxsize];P=bt;Inttop=0;Intx=minvol;While(pl=null)
2、
3、(top
4、=0)){while(pl=num){s[top]=p;top=top+1;p=p>
5、child;}If(top
6、=0){top=top-1;p=s[top];if(x<=p->data)x=p->data;/*若非递减,则继续,否则结束*/elsereturn(false);p=p->rchild;}}return(true);
7、}2假设有一个长度大于一的循环链表,在链表中删除指针s的指向的结点intDel-LinkList(LinkLists){LinkListp=s;While(p->next
8、=s)P=p->next;p->next=s->next;return(1);}3求二叉树度为2的结点数,Leaf-counter(Btreet){counter=0;PseqStackS;Btreep=t;S=Init-SeqStack();While(p
9、
10、Iempty-SeqStack(S)){If(p){Push-SeqStack(S,p);p=p->
11、child
12、;}else{Pop-SeqStack(S,p);If((p=p->
13、child==null)&&(p->rchild==null))counter++;P=p->rchild;}}Return(ounter);}4已知线性表(a1,a2,a3...)吧所有负值元素移到左边。Voidshift(intR[],intn){intlow,high;Low=0;high=n-1;While(low14、;If(lowR[high];}}5.求出链表中最大值的第一个结点的地址。Linklistfindmax(linklisthead){linklistp,q;Datatypemax;If(head==null)return(null);/*表为空,返回*/q=head;max=head->data;P=head->next;While(p15、=null){if(maxdata){max=p->data;q=p;}P=p->next;}return(q);}6求二插链表结构二叉树度为一的节点数Intcoun16、t(bintree*t)/*求二插链表结构二叉树t度为一的节点数*/{Intnum1,num2;If(t==NULL)return(0);elseif((t->17、child==NULL&&t->rchild!=NULL)18、19、(t->1child!=NULL&&t->rchild==NULL))return(1);else{num1=count(t->1child);num2=count(t->rchild);return(num1+num2);}}7二叉树T中查找只为x的算法。BinSTreeBSTreeSearch(BinSTreet,K20、eyTypeX)/*二叉树中查找值为X的算法*/(BinStreeq;q=t;While(t){q=t;If(t->key==X)/*查找成功*/Return(t);If(t->key<=X)t=t->1child;/*在左子树中查找*/elset=t->rchild;/*在右子数中查找*/}return(t);}
14、;If(lowR[high];}}5.求出链表中最大值的第一个结点的地址。Linklistfindmax(linklisthead){linklistp,q;Datatypemax;If(head==null)return(null);/*表为空,返回*/q=head;max=head->data;P=head->next;While(p
15、=null){if(maxdata){max=p->data;q=p;}P=p->next;}return(q);}6求二插链表结构二叉树度为一的节点数Intcoun
16、t(bintree*t)/*求二插链表结构二叉树t度为一的节点数*/{Intnum1,num2;If(t==NULL)return(0);elseif((t->
17、child==NULL&&t->rchild!=NULL)
18、
19、(t->1child!=NULL&&t->rchild==NULL))return(1);else{num1=count(t->1child);num2=count(t->rchild);return(num1+num2);}}7二叉树T中查找只为x的算法。BinSTreeBSTreeSearch(BinSTreet,K
20、eyTypeX)/*二叉树中查找值为X的算法*/(BinStreeq;q=t;While(t){q=t;If(t->key==X)/*查找成功*/Return(t);If(t->key<=X)t=t->1child;/*在左子树中查找*/elset=t->rchild;/*在右子数中查找*/}return(t);}
此文档下载收益归作者所有