二叉树
来源:互联网 发布:c语言运行快捷键 编辑:程序博客网 时间:2024/05/01 03:27
数组实现
一般用于完全二叉树,实现略。链表实现
typedef struct treeNode{ ElementType Data; treeNode *Left; treeNode *Right;}TreeNode;
void PreOrderTraversal(TreeNode *BT) //先序遍历,非递归实现利用stack{ if(BT) { printf(“%d”, BT->Data); PreOrderTraversal(BT->Left); PreOrderTraversal(BT->Right); }}
void InOrderTraversal(TreeNode *BT) //中序遍历,非递归实现利用stack{ if( BT ) { InOrderTraversal( BT->Left ); printf(“%d”, BT->Data); InOrderTraversal( BT->Right ); }}
void PostOrderTraversal(BinTree BT) //后序遍历,非递归实现利用stack{ if( BT ) { PostOrderTraversal(BT->Left); PostOrderTraversal( BT->Right); printf(“%d”, BT->Data); } }
void LevelOrderTraversal(BinTree BT) //层序遍历,利用队列{ Queue Q; BinTree T; if(!BT) return; Q = CreatQueue(MaxSize); AddQ(Q, BT); while(!IsEmptyQ(Q)) { T = DeleteQ(Q); printf(“%d\n”, T->Data); if(T->Left) AddQ(Q, T->Left); if(T->Right) AddQ(Q, T->Right); }}
int PostOrderGetHeight(BinTree BT) //求二叉树高度{ int HL, HR, MaxH; if(BT) { HL = PostOrderGetHeight(BT->Left); HR = PostOrderGetHeight(BT->Right); MaxH =(HL > HR)? HL : HR; return (MaxH + 1); } else return 0;}
阅读全文
0 0
- 二叉树、二叉堆
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 习题6.1
- windows上安装nlopt库/使用lib /def:... 命令
- Spring知识转载
- 【1701H1】【穆晨】【171107】连续第二十八天总结
- 图解CSS3核心技术与案例实战(第二章 CSS3选择器)
- 二叉树
- Mac osx开发环境搭建
- java事件监听机制中的事件、监听器接口、处理方法、事件源
- JavaScript的对象与原型
- 谈金丝雀部署
- 未成年程序猿少女之二
- 【小学生数据结构】树【并查集】史
- Nginx之日志拆分-yellowcong
- :after 、float