二叉树的递归遍历与复制
来源:互联网 发布:录制视频软件手机 编辑:程序博客网 时间:2024/05/16 14:02
#include <iostream>//定义树的数据结构struct BiTNode{int data;struct BiTNode *lchild, *rchild;};typedef struct BiTNode BiTNode;typedef struct BiTNode* BiTree;//前序遍历void preOrder(BiTNode *root){if (root == NULL){return;}printf("%d ", root->data);preOrder(root->lchild);preOrder(root->rchild);}//中序遍历void inOrder(BiTNode *root){if (root == NULL){return;}inOrder(root->lchild);printf("%d ", root->data);inOrder(root->rchild);}//后序遍历void posOrder(BiTNode *root){if (root == NULL){return;}posOrder(root->lchild);posOrder(root->rchild);printf("%d ", root->data);}//创建拷贝函数BiTNode* CopyTree(BiTNode *root){BiTNode *newNode = NULL;BiTNode *newLc = NULL;BiTNode *newRc = NULL;if (root == NULL){return NULL;}//拷贝左子树if (root->lchild != NULL){newLc = CopyTree(root->lchild);}else{newLc = NULL;}//拷贝右子树if (root->rchild != NULL){newRc = CopyTree(root->rchild);}else{newRc = NULL;}//创建动态内存newNode = (BiTNode * )malloc(sizeof(BiTNode));if (newNode == NULL){return NULL;}newNode->lchild = newLc;newNode->rchild = newRc;newNode->data = root->data;return newNode;}void main(){BiTNode t1, t2, t3, t4, t5;memset(&t1, 0, sizeof(BiTNode));memset(&t2, 0, sizeof(BiTNode));memset(&t3, 0, sizeof(BiTNode));memset(&t4, 0, sizeof(BiTNode));memset(&t5, 0, sizeof(BiTNode));t1.data = 1;t2.data = 2;t3.data = 3;t4.data = 4;t5.data = 5; t1.lchild = &t2;t1.rchild = &t3;t2.lchild = &t4;t2.rchild = &t5;printf("Old Tree's preOrder:\n");preOrder(&t1);printf("\n");printf("Old Tree's inOrder:\n");inOrder(&t1);printf("\n");printf("Old Tree's posOrder:\n");posOrder(&t1);printf("\n");printf("Old Tree:\n");preOrder(&t1);printf("\n");BiTNode* newTree = CopyTree(&t1);printf("New Tree:\n");preOrder(newTree);system("pause");}
阅读全文
0 0
- 二叉树的递归遍历与复制
- 二叉树的递归遍历与非递归遍历
- 二叉树的递归遍历与非递归遍历
- 二叉树的递归遍历与非递归遍历
- 二叉树的递归遍历与非递归遍历
- 二叉树的递归遍历与非递归遍历
- 二叉树的递归遍历与非递归遍历
- 二叉树的递归遍历与非递归遍历
- 二叉树的递归遍历与非递归遍历
- 基于层次遍历的非递归复制二叉树
- 二叉树的创建与遍历(递归)
- 二叉树的创建与递归遍历
- 链式二叉树的递归与遍历
- 【数据结构与算法】二叉树的遍历(递归遍历、非递归遍历、层序遍历)
- 二叉树遍历的递归与非递归版本
- 遍历二叉树的递归算法与非递归算法
- 二叉树遍历的递归与非递归算法
- 二叉树的递归与非递归遍历(Java描述)
- 推荐系统实践---第三章:推荐系统冷启动问题
- 514. Paint Fence
- docker搭建redis集群
- TCP
- 素数筛选法
- 二叉树的递归遍历与复制
- 电脑每次开机总是自动还原怎么回事?
- 2大侧拉框对比:DrawerLayout 和 SlidingMenu
- 从JVM角度阐述Java数据类型
- [Leetcode从零开刷]728. Self Dividing Numbers
- js请求servlet
- ADC参数中的SNR、SNDR与SFDR的区别是什么
- 模型属性生成器,告别手动输入模型属性
- asp如何判断浏览器类别 userAgent信息