数据结构之二叉树遍历
来源:互联网 发布:ff14精灵男捏脸数据 编辑:程序博客网 时间:2024/05/21 10:48
1.递归的方法遍历
二叉树的顺序存储方式:
①先序遍历
void PreTraverse(SqBiTree T,int e) { VisitFunc(T[e]); if(T[2*e+1]!=Nil) /* 左子树不空 */ PreTraverse(T,2*e+1); if(T[2*e+2]!=Nil) /* 右子树不空 */ PreTraverse(T,2*e+2); }②中序遍历
void InTraverse(SqBiTree T,int e) { if(T[2*e+1]!=Nil) /* 左子树不空 */ InTraverse(T,2*e+1); VisitFunc(T[e]); if(T[2*e+2]!=Nil) /* 右子树不空 */ InTraverse(T,2*e+2); }③后续遍历
void PostTraverse(SqBiTree T,int e) { /* PostOrderTraverse()调用 */ if(T[2*e+1]!=Nil) /* 左子树不空 */ PostTraverse(T,2*e+1); if(T[2*e+2]!=Nil) /* 右子树不空 */ PostTraverse(T,2*e+2); VisitFunc(T[e]); }二叉树的链表存储:
①先序遍历
void PreOrderTraverse(BiTree T,Status(*Visit)(TElemType)) { /* 初始条件: 二叉树T存在,Visit是对结点操作的应用函数。算法6.1,有改动 */ /* 操作结果: 先序递归遍历T,对每个结点调用函数Visit一次且仅一次 */ if(T) /* T不空 */ { Visit(T->data); /* 先访问根结点 */ PreOrderTraverse(T->lchild,Visit); /* 再先序遍历左子树 */ PreOrderTraverse(T->rchild,Visit); /* 最后先序遍历右子树 */ } }②中序遍历
void InOrderTraverse(BiTree T,Status(*Visit)(TElemType)) { /* 初始条件: 二叉树T存在,Visit是对结点操作的应用函数 */ /* 操作结果: 中序递归遍历T,对每个结点调用函数Visit一次且仅一次 */ if(T) { InOrderTraverse(T->lchild,Visit); /* 先中序遍历左子树 */ Visit(T->data); /* 再访问根结点 */ InOrderTraverse(T->rchild,Visit); /* 最后中序遍历右子树 */ } }
- 数据结构之二叉树遍历
- 数据结构之二叉树遍历
- 数据结构与算法之二叉树遍历
- 实用数据结构总结之二叉树遍历
- 数据结构之二叉树创建及其遍历
- 数据结构之二叉树(遍历、建立、深度)
- 数据结构之二叉树创建与遍历
- 【自考】数据结构之二叉树遍历
- 数据结构之二叉树(遍历、建立、深度)
- 数据结构之二叉树的遍历汇总
- 数据结构之二叉树(遍历、建立、深度)
- java数据结构之二叉树的遍历
- 数据结构之二叉树(遍历、建立、深度)
- 数据结构之二叉树的遍历
- 数据结构之二叉树(遍历、建立、深度)
- 数据结构之二叉树(遍历、建立、深度)
- 数据结构之二叉树的遍历
- 数据结构实验之二叉树的遍历
- 有助于提高代码质量的eclipse插件
- struts2的UI组件之间的通信机制
- 网摘
- html页面禁止缓存
- 扔飞镖与编程-或许我们应该关注结果
- 数据结构之二叉树遍历
- Kyoto Cabinet(DBM) + Kyoto Tycoon(网络层)
- help
- cocos2d的一些改动
- C#WinForm仿qq窗体拖到windows窗体边上时,自动隐藏C#WinForm
- Android上面做Flash播放器
- 网页中“禁止鼠标右键”、“禁止选中”、“禁止拖拽”、“禁止复制(Ctrl+C)”
- 清除SVN版本控制文件
- 在ns-3中运行程序