系统里的文件的关系可以用树来表示,文件是线性的存放在硬盘上的。可以用树表示的内容在硬盘上线性存放着。
一、二叉树有三种表示方式
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中,程序结束空间释放。
创建链表输出二叉树内容的函数实现: