二叉树的建立和遍历

简介: 笔记
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f3f3f3f3f
#define mod 1000000007
#define IOS ios::sync_with_stdio(false)
#define endl '\n'
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 10;
typedef struct Node {
  int data;
  Node* left, * right;
}node;
void preorder(Node *node) {//前序遍历
  if (node != NULL) {
    printf("%d\n", node->data);
    preorder(node->left);
    preorder(node->right);
  }
}
void inorder(Node* node) {//中序遍历
  if (node != NULL) {
    inorder(node->left);
    printf("%d\n", node->data);
    inorder(node->right);
  }
}
void postorder(Node* node) {//后序遍历
  if (node != NULL) {
    postorder(node->left);
    postorder(node->right);
    printf("%d\n", node->data);
  }
}
int main() {
  node n1, n2, n3, n4, n5, n6, n7;
  //暴力建树//
  n1.data = 1;
  n2.data = 2;
  n3.data = 3;
  n4.data = 4;
  n5.data = 5;
  n6.data = 6;
  n7.data = 7;
  n1.left = &n2;
  n1.right = &n3;
  n2.right = &n5;
  n2.left = &n4;
  n3.left = &n6;
  n3.right = &n7;
  n4.left = NULL;
  n4.right = NULL;
  n5.left = NULL;
  n5.right = NULL;
  n6.right = NULL;
  n6.left = NULL;
  n7.right = NULL;
  n7.left = NULL;
  preorder(&n1);
  printf("\n");
  inorder(&n1);
  printf("\n");
  postorder(&n1);
}

前序遍历输出

1 2 4 5 3 6 7

中序遍历输出

4 2 5 1 6 3 7

后序遍历输出

4 5 2 6 7 3 1

1.png

目录
相关文章
|
6月前
|
算法 数据处理 Python
深入理解二叉树:结构、遍历和实现
深入理解二叉树:结构、遍历和实现
深入理解二叉树:结构、遍历和实现
数据结构实验之二叉树的建立与遍历
数据结构实验之二叉树的建立与遍历
|
存储 算法
二叉树的创建和遍历
二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个节点最多只能有两棵子树,且有左右之分
94 0
|
存储 算法 编译器
探索二叉树:结构、遍历与应用
什么是二叉树? 二叉树是一种由节点组成的层次结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。这种结构使得二叉树在存储和搜索数据时非常高效。二叉树的一个特殊情况是二叉搜索树(Binary Search Tree,BST),它满足左子节点的值小于父节点,右子节点的值大于父节点,这种特性使得在BST中进行查找操作更加高效。
105 0
|
存储 编译器
二叉树的递归遍历与迭代遍历(图示)
本文将讲述二叉树递归与迭代的相关知识。
130 0
|
机器学习/深度学习 C++ 容器
二叉树创建和遍历(C++实现)
树(Tree)是n(n≥0)个节点的有限集。在任意一棵树中有且仅有一个特定的称为根(Root)的节点;当n>1时,其余节点可分m(m>0)为个互不相交的有限集T1,T2,...,Tm;其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。 二叉树(Binary Tree)是一种特殊的有序树型结构,所有节点最多只有2棵子树。
681 0
二叉树的三种遍历方式
二叉树的三种遍历方式
235 0
二叉树的三种遍历方式
|
存储 Java
(Java)数据结构之树与二叉树(二叉树的四种遍历,获取结点个数,获取叶子结点个数,获取高度,获取第k层结点个数,查找值为val的结点,判断一棵树是否为完全二叉树(详述,图文并茂)
树是一种非线性的数据结构,它是由n个(n&gt;=0)个有限节点组成一个具有层次关系的集合。它的形状像一颗倒挂的树,根在上,叶在下。
(Java)数据结构之树与二叉树(二叉树的四种遍历,获取结点个数,获取叶子结点个数,获取高度,获取第k层结点个数,查找值为val的结点,判断一棵树是否为完全二叉树(详述,图文并茂)