为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

互换二叉树的左右子树

2017-11-11 4页 doc 16KB 23阅读

用户头像

is_983143

暂无简介

举报
互换二叉树的左右子树互换二叉树的左右子树 #include #include #include #define TRUE 1 #define FLASE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 typedef int Status; typedef int TElemType; typedef struct BiTNode { TElemType data; struct BiTNode *lchild,*rchild; } B...
互换二叉树的左右子树
互换二叉树的左右子树 #include #include #include #define TRUE 1 #define FLASE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 typedef int Status; typedef int TElemType; typedef struct BiTNode { TElemType data; struct BiTNode *lchild,*rchild; } BiTNode,*BiTree; Status CreateBiTree(BiTree &T) { TElemType e; scanf("%d",&e); if(e==0) T=NULL; else { T=(BiTree)malloc(sizeof(BiTNode)); if(!T) exit(OVERFLOW); T->data =e; CreateBiTree(T->lchild ); CreateBiTree(T->rchild ); } return OK; } Status PrintElement (TElemType e) { printf("%d ",e); return OK; } Status PreOrderTraverse (BiTree T,Status (* Visit) (TElemType)) { if(T) { if(Visit(T->data )) if(PreOrderTraverse(T->lchild ,Visit)) if(PreOrderTraverse(T->rchild ,Visit)) return OK; return ERROR; } else return OK; } Status InOrderTraverse (BiTree T,Status (* Visit) (TElemType)) { if(T) { if(InOrderTraverse(T->lchild ,Visit)) if(Visit(T->data )) if(InOrderTraverse(T->rchild ,Visit)) return OK; return ERROR; } else return OK; } Status PostOrderTraverse (BiTree T,Status (* Visit) (TElemType)) { if(T) { if(PostOrderTraverse(T->lchild ,Visit)) if(PostOrderTraverse(T->rchild ,Visit)) if(Visit(T->data )) return OK; return ERROR; } else return OK; } Status Exchangechild (BiTree &T) { BiTree temp; if(T) { temp=T->lchild ; T->lchild =T->rchild ; T->rchild =temp; Exchangechild(T->lchild ); Exchangechild(T->rchild ); return OK; } else return ERROR; } void main() { BiTree T; printf("请输入树中节点的值(int型),0示空树:\n"); CreateBiTree(T); Exchangechild(T); printf("互换左右子树后,二叉树的先序输出是:\n"); PreOrderTraverse(T,PrintElement); printf("\n"); printf("互换左右子树后,二叉树的中序输出是:\n"); InOrderTraverse(T,PrintElement); printf("\n"); }
/
本文档为【互换二叉树的左右子树】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索