二叉树

     系统里的文件的关系可以用树来表示,文件是线性的存放在硬盘上的。可以用树表示的内容在硬盘上线性存放着。

一、二叉树有三种表示方式


1.二叉树数组表示法:(空间浪费大)

在主程序中定义了nodelist[16] 和b_tree[16],在执行程序是输入:1 ,2,3,4,5,6时会出现错误。

原因是数字依次增大时,形成的是右歪斜树。此时的二叉树空间需要到2^6-1个。分配的空间不够使,产生了溢出。

实现函数如下:


2.二叉树结构体数组表示法

Nodelist[n]和b_tree[n]可以定义相同的个数,在结构体数组中需要存放b_tree[n].left 和b_tree.[n]right的空间。


开始的时候把函数的第一个参数类型写成int 类型,在执行此函数的时候,结构体指针没传进去,

找不到结构体的成员。


3二叉树的链表表示

动态的分配空间

生成新结点的函数实现:


在添加新结点的子函数中,指Newnode 是局部指针变量存放在栈中,占4个字节,函数调用完成空间释放。

针指向的内容访问方式是结构体b_tree 类型。指向的内容存放在堆stack中,程序结束空间释放。

创建链表输出二叉树内容的函数实现:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值