C语言实现二叉树前序中序后序递归与非递归遍历、层次遍历、二叉树带权路径长度

用C语言实现了二叉树的初始化,循环队列与顺序栈的建立。

利用递归与非递归方式实现前序遍历、中序遍历、后序遍历。

利用队列实现了层次遍历。

求得了二叉树带权路径长度

#include<stdio.h>
#include<stdlib.h>

#define Maxsize 20
typedef struct BitNode
{
    /* data */
    int data;
    struct BitNode *lchild,*rchild;
}BitNode;

typedef struct Stack{         //栈及相关操作
    BitNode *data[Maxsize];
    int top;
}Stack;

Stack * initStack(){
    Stack *s = (Stack *)malloc(sizeof(Stack));
    s->top=0;
    return s;
}
int isStackEmpty(Stack *p){
    if(p->top==0){
        return 1;
    }
    return -1;
}
int pushStack(Stack *p,BitNode *node){
    if(p->top+1>Maxsize){
        printf("full error,please enlarge Maxsize\n");
        return -1;
    }
    p->data[p->top]=node;
    p->top++;
    return 1;
}
BitNode* popStack(Stack *p){
    if(p->top==0){
        return NULL;
    }
    BitNode * temp = p->data[p->top-1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值