c++二叉树的实现

二叉树这种数据结构中必须有一个根节点,然后由这个根节点再往下延伸两个节点,在逻辑上是左子树和右子树 在由左右子树开始往下伸展各个节点 

这样的树型结构遍历分前序 中序 后序 遍历方式 遍历均为 递归方式 

前序 : 先从根节点的左子树开始往下遍历 在左子树节点中 的左节点开始 如果为空 则遍历右子树右子树为空则返回 到上一个子树节点 遍历它的 右子树

遍历顺序为 :1->2->4->8->9->5->10->11->3->6->12->13->7->14->15

代码如下

#include<stdio.h>
#include<stdlib.h>
typedef struct node{
    int data;
    struct node* left;
    struct node* 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);
        }
}
int main()
{
    Node n1;
    Node n2;
    Node n3;
    Node n4;
    n1.data=5;
    n2.data=6;
    n3.data=7;
    n4.data=8;

     n1.left =&n2;
     n1.right =&n3;
     n2.left=&n4;
     n2.right=NULL;
     n3.left=NULL;
     n3.right=NULL;
     n4.left=NULL;
     n4.right=NULL;
      preorder(&n1);
    //  inorder(&n1);
     return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值