麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

二叉樹大全

2019-11-10 20:30:11
字體:
供稿:網(wǎng)友
#include <stdio.h>#include <string.h>#include <stdlib.h>struct tree{    int data;    struct tree *lchild, *rchild;};int i, flag;void BinarySortTreeCreat(struct tree *&t,int a);void BInarySortTreeCompare(struct tree *t1, struct tree *t2);void PReCreat(struct tree *&t,char *pre, int len);///need i = 0void PreinCreat(struct tree *&t,char *pre, char *in, int len);void InpostCreat(struct tree *&t,char *in, char *post, int len);void CengciOrder(struct tree *t);void PreOrder(struct tree *t);void InOrder(struct tree *t);void PostOrder(struct tree *t);int LeafCount(struct tree *t);void LeafOrder(struct tree *t);///up to down,left to rightint TreeHeight(struct tree *t);int main(){    int T, len, cnt, m, num[101];    struct tree *t;    char pre[51], in[51], post[51];    while(~scanf("%d",&T))    {        t = NULL;        for(int j = 0; j < T; j++)        {            scanf("%d",&num[j]);            BinarySortTreeCreat(t, num[j]);        }        flag = 0;        PostOrder(t);        printf("/n");    }    return 0;}void BinarySortTreeCreat(struct tree *&t,int a){    if(t == NULL)    {        t = (struct tree *)malloc(sizeof(struct tree));        t->data = a;        t->lchild = NULL;        t->rchild = NULL;    }    else    {        if(a > t->data)            BinarySortTreeCreat(t->rchild, a);        else            BinarySortTreeCreat(t->lchild, a);    }}void BInarySortTreeCompare(struct tree *t1, struct tree *t2){    if(t1 == NULL&&t2 == NULL)        return ;    if(t1||t2)    {        if(t1->data!=t2->data)        {            flag = 1;            return ;        }        BInarySortTreeCompare(t1->lchild, t2->lchild);        BInarySortTreeCompare(t1->rchild, t2->rchild);    }}void PreCreat(struct tree *&t,char *pre, int len){    if(len == 0)        return ;    if(pre[i] == ',')    {        t = NULL;        i++;    }    else    {        t = (struct tree *)malloc(sizeof(struct tree));        t->data = pre[i++];        PreCreat(t->lchild, pre, len);        PreCreat(t->rchild, pre, len);    }}void PreinCreat(struct tree *&t,char *pre, char *in, int len){    if(len <= 0)        t = NULL;    else    {        int a = strchr(in, pre[0]) - in;        t = (struct tree *)malloc(sizeof(struct tree));        t->data = pre[0];        PreinCreat(t->lchild, pre+1,in,a);        PreinCreat(t->rchild,pre+a+1,in+a+1,len-a-1);    }}void InpostCreat(struct tree *&t,char *in, char *post, int len){    if(len <= 0)        t = NULL;    else    {        int a = strchr(in, post[len-1]) - in;        t = (struct tree *)malloc(sizeof(struct tree));        t->data = post[len-1];        InpostCreat(t->lchild,in,post,a);        InpostCreat(t->rchild,in+a+1,post+a,len-1-a);    }}void CengciOrder(struct tree *t){    struct tree *q[55], *p;    int head=0, tail=0;    q[tail++]=t;    if(!t)        return ;    while(head < tail)    {        p=q[head++];        printf("%c",p->data);        if(p->lchild)            q[tail++]=p->lchild;        if(p->rchild)            q[tail++]=p->rchild;    }}void PreOrder(struct tree *t){    if(t!=NULL)    {        printf("%c",t->data);        PreOrder(t->lchild);        PreOrder(t->rchild);    }}void InOrder(struct tree *t){    if(t!=NULL)    {        InOrder(t->lchild);        printf(flag==0?"%d":" %d",t->data);        flag++;        InOrder(t->rchild);    }}void PostOrder(struct tree *t){    if(t!=NULL)    {        PostOrder(t->lchild);        PostOrder(t->rchild);        printf(flag==0?"%d":" %d",t->data);        flag++;    }}int LeafCount(struct tree *t){    if(t == NULL)        return 0;    if(t->lchild==NULL&&t->rchild==NULL)        return 1;    return LeafCount(t->lchild)+LeafCount(t->rchild);}void LeafOrder(struct tree *t){    struct tree *q[55], *p;    int head=0, tail=0;    q[tail++]=t;    if(!t)        return ;    while(head < tail)    {        p=q[head++];        if(p->lchild==NULL&&p->rchild==NULL)            printf("%c",p->data);        if(p->lchild)            q[tail++]=p->lchild;        if(p->rchild)            q[tail++]=p->rchild;    }}int TreeHeight(struct tree *t){    int lh=0,rh=0;    if(t==NULL)        return 0;    if(t->lchild!=NULL)        lh=TreeHeight(t->lchild);    else        lh=0;    if(t->rchild!=NULL)        rh=TreeHeight(t->rchild);    else        rh=0;    return (rh>lh)?rh+1:lh+1;}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产在线播放一区二区 | 欧美性猛交一区二区三区精品 | 久色精品视频 | 一级裸体视频 | 色av成人天堂桃色av | 北京一级毛片 | 精品国产乱码久久久久久丨区2区 | 午夜视频色 | 91午夜理伦私人影院 | 高清做爰免费无遮网站挡 | 欧美一级免费视频 | 九九视屏 | 久久久国产精品成人免费 | 日韩不卡一区二区 | 精品亚洲国产视频 | 国内精品一级毛片免费看 | 午夜男人免费视频 | 嗯~啊~弄嗯~啊h高潮视频 | 久久777国产线看观看精品 | 国产精品99久久久久久大便 | 成人片免费视频 | 国产激情网 | 羞羞网站 | 污污短视频 | 中文字幕精品在线播放 | 久久影院国产精品 | 国产成人强伦免费视频网站 | 国产亚洲精品视频中文字幕 | 日韩精品一二三区 | 久久99久久99精品 | 逼特逼视频在线观看 | 99精品无人区乱码在线观看 | 亚洲日色 | 欧美人一级淫片a免费播放 久久久久久久久91 国产99久久久久久免费看 | 海外中文字幕在线观看 | 中国videos露脸hd | 成人男女啪啪免费观看网站四虎 | 中国女警察一级毛片视频 | 久久久精品视频网站 | 特色一级黄色片 | 污黄视频在线播放 |