自底向上建树,Create Tree from bottom to top

#include<stdio.h>
#include<stdlib.h>
typedef struct bin_tree_t
{
  struct bin_tree_t *parent;
  struct bin_tree_t *left;
  struct bin_tree_t *right;
  struct bin_tree_t *first;
  struct bin_tree_t *next;

  unsigned int val;

}intTree;

intTree *createIntTree(intTree *left,intTree *right,unsigned int token)
{
    intTree *pt;
    pt=(intTree *)malloc(sizeof(intTree));

    if(__builtin_expect(pt==NULL,0))
    {
        return NULL;
    }
    pt->val=token;
    pt->next=NULL;
    pt->first=NULL;
    pt->parent=NULL;
    pt->left=left;
    pt->right=right;

    if(left!=NULL)
        left->parent=pt;
    if(right!=NULL)
        right->parent=pt;
    return pt;

}


int main(void)
{
    intTree *t1;
    intTree *t2;
    intTree *p;
    intTree *root;
    int loop;

    t1=createIntTree(NULL,NULL,1);

    t2=t1;
    for(loop=2;loop<10;loop++)
    {
        p=createIntTree(t1,NULL,loop);
        t1=p;
    }

    //root=p;
    //visit tree from Top->bottom
    while(p)
    {
        printf("p->val=%d\n",p->val);
        p=p->left;

    }

    printf("###########################################\n");
    //Visit tree from bottom to top
    p=t2;
    while(p)
    {
        printf("p->val=%d\n",p->val);
        p=p->parent;

    }


}

作用非常像一个双向链表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值