博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树模板(调试中)
阅读量:5300 次
发布时间:2019-06-14

本文共 1753 字,大约阅读时间需要 5 分钟。

今晚上撸了二叉树的的代码,要哭。指针乱☞。。

就当复习一下二叉树了。

恩。

二叉树有以下性质:

1.在二叉树第i层最多有2^(i-1)个nodes;

2.深度k的二叉树至多有2^k-1个nodes;

3.任意一颗二叉树,如果叶节点有n个,度为2的节点有m个,那么满足等式:n=m+1;

4.具有n个节点的完全二叉树的深度为ceil(log2 n);

5.对于一颗二叉树设节点为i:

那么:

如果i>1,则它的父节点为i/2;

如果2*i>n,则无左孩子。否则左孩子为2*i;

如果2*i+1>n,则无右孩子。否则右孩子为2*i+1;

#include
#include
#include
#include
#include
using namespace std;typedef struct node;typedef node *tree;struct node{ char data; tree lchild,rchild;};tree bt;string s;int i;void buildtree(tree &bt)//建树{ if(s[++i]!='$') { bt=new node; bt->data=s[i]; buildtree(bt->lchild); buildtree(bt->rchild); } else bt=NULL;}void xianpreorder(tree &bt)//先序遍历{ if(bt) { cout<
data; xianpreorder(bt->lchild); xianpreorder(bt->rchild); }}void zhongpreorder(tree &bt)//中序遍历{ if(bt) { cout<
data; zhongpreorder(bt->lchild); zhongpreorder(bt->rchild); }}void houpreorder(tree &bt)//后序遍历{ if(bt) { cout<
data; houpreorder(bt->lchild); houpreorder(bt->rchild); }}void deletetree(tree &bt)//删除树{ deletetree(bt->lchild); deletetree(bt->rchild); delete bt;}void inserttree(tree &bt,int n)//插入节点{ if(bt) { if(n
data) inserttree(bt->lchild,n); else if(n>bt->data) inserttree(bt->rchild,n); } else { bt=new node; bt->data=n; bt->lchild=bt->rchild=NULL; }}tree findtree(tree bt,int n)//查找节点{ if(bt) { if(n
data) findtree(bt->lchild,n); else if(n>bt->data) findtree(bt->rchild,n); else return bt; } else return NULL;}int main(){ cin>>s; i=-1; buildtree(bt); xianpreorder(bt); zhongpreorder(bt); houpreorder(bt); int n; cin>>n; inserttree(bt,n); findtree(bt,n); deletetree(bt); return 0;}

 

转载于:https://www.cnblogs.com/srpihot/p/6384107.html

你可能感兴趣的文章
变量提升
查看>>
线性表可用顺序表或链表存储的优缺点
查看>>
在现有的mysql主从基础上,搭建mycat实现数据的读写分离
查看>>
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>
1007. Maximum Subsequence Sum (25)
查看>>
iframe的父子层跨域 用了百度的postMessage()方法
查看>>
图片生成缩略图
查看>>
动态规划 例子与复杂度
查看>>
查看oracle数据库的连接数以及用户
查看>>
【数据结构】栈结构操作示例
查看>>
中建项目环境迁移说明
查看>>
三.野指针和free
查看>>
activemq5.14+zookeeper3.4.9实现高可用
查看>>
TCP/IP详解学习笔记(3)IP协议ARP协议和RARP协议
查看>>
简单【用户输入验证】
查看>>
python tkinter GUI绘制,以及点击更新显示图片
查看>>