1.树的先序遍历-递归

void PreOrder(BiTree T){if(T!=NULL){visit(T);PreOrder(T->lchild);PreOrder(T->rchild);}
}

2.树的中序遍历-递归

void InOrder(BiTree T){if(T!=NULL){InOrder(T->lchild);visit(T);InOrder(T->rchild);}
}

3.树的后序遍历-递归

void PostOrder(BiTree T){if(T!=NULL){PostOrder(T->lchild);PostOrder(T->rchild);visit(T);}
}

4.树的层次遍历

void LevelOrder(BiTree T){InitQueue(Q);BiTree p;EnQueue(Q,T);while(!IsEmpty(Q)){DeQueue(Q,p);visit(p);if(p->lchild!=NULL)EnQueue(Q,p->lchild);if(p->rchild!=NULL)EnQueue(Q,p->rchild);}
}

5.中序遍历-非递归

void InOrder2(BiTree T){InitStack(S);BiTree p=T;    //p是遍历指针while(p||!IsEmpty(S)){  //栈不空或p不空时循环if(p){Push(S,p);    //每遇到非空二叉树先左走p=p->lchild;}else{Pop(S,p);visit(p);p=p->rchild;}  }
}

数据结构-树的基础代码相关推荐

  1. 数据结构-树的进阶代码

    1.复制一颗二叉树的算法 树的存储结构如下: typedef int ElemType; typedef struct BiTNode{ElemType data;struct BiTNode *lc ...

  2. 数据结构-图的基础代码

    1.深度优先搜索(DFS) 启动函数: #define MAX_VERTEX_NUM 1024 bool visited[MAX_VERTEX_NUM]; void DFSTraverse(Graph ...

  3. 数据结构之树的基础知识

    y今天我们翻开新的篇章,在结束了前面一对一的线性表后,我们来看看一对多的树.树这种数据结构其实在我们生活中也是很常见的,应用也是很广的.和线性表,图共同占据算法界的半壁江山(hhh,博主自己脑补的)所 ...

  4. 【数据结构与算法基础】哈夫曼树与哈夫曼编码(C++)

    前言 数据结构,一门数据处理的艺术,精巧的结构在一个又一个算法下发挥着他们无与伦比的高效和精密之美,在为信息技术打下坚实地基的同时,也令无数开发者和探索者为之着迷. 也因如此,它作为博主大二上学期最重 ...

  5. 【数据结构与算法基础】树与二叉树的互化

    前言 数据结构,一门数据处理的艺术,精巧的结构在一个又一个算法下发挥着他们无与伦比的高效和精密之美,在为信息技术打下坚实地基的同时,也令无数开发者和探索者为之着迷. 也因如此,它作为博主大二上学期最重 ...

  6. C++基础代码--20余种数据结构和算法的实现

    C++基础代码--20余种数据结构和算法的实现 过年了,闲来无事,翻阅起以前写的代码,无意间找到了大学时写的一套C++工具集,主要是关于数据结构和算法.以及语言层面的工具类.过去好几年了,现在几乎已经 ...

  7. 数据结构-排序基础代码

    数据结构-排序基础代码 1.快排的递归算法: void QuickSort(int A[],int n){Qsort(A,0,n-1); } void Qsort(int A[],int left,i ...

  8. python数据结构与算法知识点_数据结构和算法基础知识点(示例代码)

    数据结构和算法基础知识点 链表 1.链表是一种由节点组成的线性数据集合,每个节点通过指针指向下一个节点.它是 一种由节点组成,并能用于表示序列的数据结构. 2.单链表:每个节点仅指向下一个节点,最后一 ...

  9. 数据结构--树状数组

    文章目录 1. 树状数组 2. 单点修改 3. 区间修改 4. 完整代码 5. 参考文献 1. 树状数组 类似数据结构:线段树(Segment Tree) 树状数组 跟 线段树 的区别: 树状数组能做 ...

最新文章

  1. Leangoo背景更新-看板背景任你选!!!
  2. Effective C# Item23:避免返回内部类对象的引用
  3. java 转码%2f%_JS和JAVA中常用的编码转码函数
  4. 虚拟环境的常用命令 virtualenv命令
  5. 射频测试系统软件,新的~~蓝牙5.0射频测试系统
  6. 熬了整整30天,java工作流开发
  7. kingroot android 7,KingRoot全球实现Android 7.0一键 Root
  8. HG255D[OpenWrt]刷机
  9. 2019年SpringBoot视频教程【全网免费】每周更新
  10. journalctl命令使用
  11. h3c服务器怎么更换无线密码,如何更换无线网密码_怎么更换无线网密码?-192路由网...
  12. Spring Boot打包成执行jar后获取classpath下文件异常解决
  13. adb 安装apk报错Failure [INSTALL_FAILED_TEST_ONLY:]
  14. 桌面运维工程师需要会哪些技能?主要是做什么的?
  15. 计算机二级c++考试
  16. linux查看磁盘空间大小
  17. ESL3.5 学习笔记(主成分回归,偏最小二乘回归步骤详解)
  18. Linux基础命令---lpr 1
  19. 仿抖音短视频系统源码,android 时间戳转换
  20. python用来初始化对象属性的是_猪行天下之Python基础——8.1 类与对象

热门文章

  1. 当程序员真难,又一次被编辑器坑了!
  2. 学习C/C++编程有什么条件,没基础能学C++开发吗?来了解一下吧!
  3. 程序员在学习编程的时候,想记住所有代码是不可能的!为什么?
  4. 努力的钻研深层次的【飞鸽传书】技术
  5. 『飞鸽』彻底学通string.Format以及IFormattable,IFormatProvider,ICustomFormatter
  6. 飞鸽传书 v2.51 Build 320 多国语言版
  7. 60秒一口Python:147个demo,助你从新手小白步步进阶编程高手,赶紧收藏!!
  8. 2020-1024=996,2020年程序员还会难吗?
  9. ​面试官口述:我是这样面试web前端开发求职者(有干货)
  10. mac hosts文件已锁定无法修改怎么办?hosts修改权限设置教程