电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

创建二叉树的三种算法(递归和非递归)VIP免费

创建二叉树的三种算法(递归和非递归)_第1页
创建二叉树的三种算法(递归和非递归)_第2页
创建二叉树的三种算法(递归和非递归)_第3页
创建二叉树的三种算法:1、结构体定义:structnode{structnode*lchild;structnode*rchild;charch;};2、算法部分1)递归创建二叉树(无返回值法):voidcreate(structnode**T){charch;std::cin>>ch;if(ch==‘#’)*T=NULL;else{*T=(structnode*)malloc(sizeof(structnode));*T->ch=ch;create(&(*T)->lchild);create(&(*T)->rchild);}}搭配上主函数即可使用:intmain(void){structnode*tree;create(&tree);return0;}2)递归创建二叉树(有返回值):structnode*create(structnode*T){charch;std::cin>>ch;if(ch!=‘#’){T=(structnode*)malloc(sizeof(structnode));T->ch=ch;T->lchild=create(T->lchild);T->rchild=create(T->rchild);returnT;}returnNULL;}搭配主函数即可使用:intmain(void){structnodeT,*head;head=create(&T);return0;}3)非递归创建树:structnode*create(){charch[20];inti=0,flag=0,top=0;structnode*tree,*head,*stack[20],*st;std::cin>>ch;tree=(structnode*)malloc(sizeof(structnode));head=tree;tree->data=ch[i];tree->lchild=NULL;tree->rchild=NULL;stack[top++]=tree;inta=0;i++;while(irchild==st){st=stack[--top];}}elseif((ch[i]=='#')&&(flag==0)){flag=1;}elseif(ch[i]!='#'){tree=(structnode*)malloc(sizeof(structnode));tree->data=ch[i];tree->lchild=NULL;tree->rchild=NULL;if(flag==0){stack[top-1]->lchild=tree;stack[top]=tree;top++;}if(flag==1){flag=0;stack[top-1]->rchild=tree;top++;}}else{std::cout<<"sorry,yourenteriserror"<

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

文章天下+ 关注
实名认证
内容提供者

各种文档应有尽有

相关文档

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群