数据结构——简单二叉树的性质和遍历

二叉树

两个值得注意的性质:

1.二叉树是有序树,这个我想了很久不知道为什么,可是为什么二叉树只有三种遍历方式,而不是六种?说明每个形态不同的树都有不同的含义。那完全二叉树和平衡二叉树呢?也是一样的

2.n0=n2+1 推法: n-1=2n2+n1 n=n0+n1+n2

遍历

前 中 后序遍历

cpp 复制代码
#include <iostream>
#include <stdlib.h>

using namespace std;

typedef struct Node
{
    struct Node *left;
    struct Node *right;
    int data;
} N, Tr;
N *createNode(int data)
{
    N *a = (N *)malloc(sizeof(N));
    a->left = a->right = NULL;
    a->data = data;
    return a;
}
void pre(Tr *root)
{
    if (root == NULL)
        return;
    cout
        << root->data << " ";
    pre(root->left);
    pre(root->right);
}
void In(Tr *root)
{
    if (root == NULL)
        return;
    In(root->left);
    cout << root->data << " ";
    In(root->right);
}
void aft(Tr *root)
{
    if (root == NULL)
        return;
    aft(root->left);
    aft(root->right);
    cout << root->data << " ";
}
int main()
{
    Tr *root = createNode(3);
    root->right = createNode(4);
    root->left = createNode(5);
    root->left->left = createNode(6);
    root->left->right = createNode(7);
    root->right->left = createNode(8);
    root->right->right = createNode(9);
    pre(root);
    cout << endl;
    In(root);
    cout << endl;
    aft(root);
    cout << endl;
}
相关推荐
爱是小小的癌1 小时前
Java-数据结构-优先级队列(堆)
java·前端·数据结构
sjsjs111 小时前
【数据结构-字典树】力扣14. 最长公共前缀
数据结构·leetcode
iqay4 小时前
【C语言】填空题/程序填空题1
c语言·开发语言·数据结构·c++·算法·c#
makabaka_T_T5 小时前
25寒假算法刷题 | Day1 | LeetCode 240. 搜索二维矩阵 II,148. 排序链表
数据结构·c++·算法·leetcode·链表·矩阵
wclass-zhengge6 小时前
04树 + 堆 + 优先队列 + 图(D1_树(D6_B树(B)))
数据结构·b树
qq_433618448 小时前
哈夫曼树
数据结构·算法
励志成为美貌才华为一体的女子9 小时前
python算法和数据结构刷题[4]:查找算法和排序算法
数据结构·算法·排序算法
tt55555555555510 小时前
每日一题-判断是不是完全二叉树
数据结构·算法
嘻嘻哈哈的zl11 小时前
初级数据结构:栈和队列
c语言·开发语言·数据结构
小王努力学编程11 小时前
【C++篇】哈希表
数据结构·哈希算法·散列表