二叉树的建立
来源:互联网 发布:vlan arp 获得保存mac 编辑:程序博客网 时间:2024/05/16 18:14
二叉树的先序建立思路就像先序遍历一样 ,利用递归思想。
链接:二叉树遍历
#include<stdio.h>#include<stdlib.h>typedef struct BinaryTreeNode { int num; struct BinaryTreeNode* leftNode; struct BinaryTreeNode* rightNode;}BTNode,*PBTNode;/**先序遍历*/void PreOrder(PBTNode pHead) { if (NULL == pHead) { return; } printf("%d ",pHead->num); //先根节点 PreOrder(pHead->leftNode); //再先序遍历左子树 PreOrder(pHead->rightNode); //再先序遍历右子树}/**中序遍历*/void InOrder(PBTNode pHead){ if (NULL == pHead) { return; } InOrder(pHead->leftNode); printf("%d ", pHead->num); InOrder(pHead->rightNode);}/**后序遍历*/void PostOrder(PBTNode pHead) { if (NULL == pHead) { return; } PostOrder(pHead->leftNode); PostOrder(pHead->rightNode); printf("%d ", pHead->num);}/**先序创建二叉树*/PBTNode Init() { int num; PBTNode pHead; scanf("%d", &num); if (-1 == num) { pHead = NULL; } else { pHead = (PBTNode)malloc(sizeof(BTNode)); pHead->num = num; pHead->leftNode=Init(); //递归 pHead->rightNode = Init(); } return pHead;}int main() { PBTNode pHead= Init(); puts("先序遍历"); PreOrder(pHead); puts("\n中序遍历"); InOrder(pHead); puts("\n后序遍历"); PostOrder(pHead); return 0;}
创建上图的树 -1代表节点空指针
0 0
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 【二叉树的建立】
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 二叉树的建立
- 实现手机app控制威联通QNAP的NAS设备中Aria2启动运行
- Laravel 5's the artisan command
- 二级指针学习模型三
- GCC在C语言中内嵌汇编 asm __volatile__
- LCD1602驱动程序
- 二叉树的建立
- 【leetcode 237】 Delete Node in a Linked List (C++)
- MySQL使用总结
- c++ vector
- OCP11G 051 第169题
- Redis3集群搭建
- What's the WAR
- 【jzoj4906】【NOIP2016提高组】【组合数问题】【数论】
- layer mobile的使用问题