二叉树遍历
来源:互联网 发布:云计算和大数据的作用 编辑:程序博客网 时间:2024/05/11 00:50
2014年第三题
根据题目要求,先建树,建好树之后进行遍历即可
#include <iostream>using namespace std;struct Node{ int val; Node *lchild; Node *rchild;};Node Tree[10000];int local;void preOrder(Node* T){ cout << T->val << ' '; if (T->lchild != NULL) { preOrder(T->lchild); } if (T->rchild != NULL) { preOrder(T->rchild); }}void inOrder(Node* T){ if (T->lchild != NULL) { inOrder(T->lchild); } cout << T->val << ' '; if (T->rchild != NULL) { inOrder(T->rchild); }}void postOrder(Node* T){ if (T->lchild != NULL) { postOrder(T->lchild); } if (T->rchild != NULL) { postOrder(T->rchild); } cout << T->val << ' ';}Node* creat(){ Tree[local].lchild = Tree[local].rchild = NULL; local++; return &Tree[local-1];}Node* insert(Node* T,int a,int b,int c){ if (T->val == a) { if (b != -1) { Node *p = creat(); p -> val = b; T -> lchild = p; } else T->lchild = NULL; if (c != -1) { Node *q = creat(); q -> val = c; T -> rchild = q; } else T->rchild = NULL; return T; } else if (T->val != a) { if (T->lchild != NULL) { T->lchild = insert(T->lchild,a,b,c); } if (T->rchild != NULL) { T->rchild = insert(T->rchild,a,b,c); } } return T;}int main(){ int n; cin >> n; local = 0; Node *T = creat(); T -> val = 0; for (int i = 0;i < n;i++) { int a,b,c; cin >> a >> b >> c; T = insert(T,a,b,c); } preOrder(T); cout << endl; inOrder(T); cout << endl; postOrder(T); cout << endl;}
0 0
- 二叉树遍历、分层遍历
- 遍历二叉树--二叉树
- 【树】遍历二叉树
- 二叉树遍历
- 二叉树遍历
- 二叉树的遍历
- (原创)遍历二叉树
- 二叉树遍历-php
- 查找--遍历二叉树
- 遍历二叉树
- 二叉树遍历规则
- 二叉树的遍历
- 二叉树遍历
- 遍历二叉树
- 二叉树遍历问题
- 二叉树遍历
- 二叉树遍历(zz)
- 二叉树的遍历
- 写给在读的大学生和毕业不久的小伙伴
- studio突然连接不上手机怎么解决
- 说说&和&&的区别
- easyui问题
- jquery ajax传递数组与接收
- 二叉树遍历
- pwnable.kr writeup之simple login
- 多臂强盗(multi-armed bandit)问题探究-续2
- 聊聊JVM的年轻代
- Python中Swithch Case语法实现
- 入门级Hadoop集群搭建详细教程(三):Linux常用命令之用户、组和权限
- Git学习使用(1)
- module 'tensorflow.python.ops.nn' has no attribute 'seq2seq' ‘rnn_cell’
- Ofbiz引擎之服务引擎