• 二叉树结点定义
typedef struct BTNode
{char data;struct BTNode *lchild;struct BTNode *rchild;
}BTNode;

  • 二叉树遍历之先序遍历

如果二叉树为空树,什么都不做。否则:1.访问根结点。2.先序遍历左子树。3.先序遍历右子树

void PreOrder(BTNode *p)
{if (p!=NULL){visit(p);//假设访问函数visit()已经定义过PreOrder(p->lchild);PreOrder(p->rchild);}
}

  • 二叉树遍历之中序遍历
void InOrder(BTNode *p)
{if (p!=NULL){InOrder(p->lchild);visit(p);//假设访问函数visit()已经定义过,其中包含了对结点P的各种操作。InOrder(p->rchild);}
}

  • 二叉树遍历之后序遍历
void PostOrder(BTNode *p)
{if (p!=NULL){PostOrder(p->lchild);PostOrder(p->rchild);visit(p);//假设visit已经定义过,其中包含了对结点的各种访问操作
    }
}

  • 求二叉树深度
int getDepth(BTNode *p)
{int ld,rd;if (p==NULL){return 0;}else {ld=getDepth(p->lchild);rd=getDepth(p->rchild);return (ld>rd?ld:rd)+1;}
}

  • 二叉树之层次遍历

要进行层次遍历需要建立一个循环队列。先将二叉树头结点入队列,然后出队列,访问该结点,如果它有左子鼠,便将左子树根节点入队列,如果它有右子树,便将右子树根结点入队。然后出对了,对出队结点访问,如此反复,直到队列为空为止。

void level(BTNode *p)
{int front, rear;BTNode *que[maxSize];front=rear=0;BTNode *q;if (p!=NULL){rear=(rear+1)%maxSize;que[rear]=p;//根节点入队while (front!=rear){front=(front+1)%maxSize;q=que[front];visit(q);if (q->lchild!=NULL){rear=(rear+1)%maxSize;que[rear]=q->lchild;}if (q->rchild!=NULL){rear=(rear+1)%maxSize;que[rear]=q->rchild;}}}
}

转载于:https://www.cnblogs.com/shinecox/p/3140327.html

数据结构基本知识点(二)相关推荐

  1. 严蔚敏数据结构c++版微盘_数据结构复习知识点总结

    <数据结构>重点在线性表.树.图.查找和排序.参考书目是<数据结构>(C语言版)严蔚敏.吴伟民编著.通过对线性表.队列.栈和数组的了解,进一步理解其含义,熟悉各种例如进栈.出栈 ...

  2. 20172328《程序设计与数据结构》实验二:树

    20172328<程序设计与数据结构>实验二:树 课程:<软件结构与数据结构> 班级: 1723 姓名: 李馨雨 学号:20172328 实验教师:王志强老师 实验日期:201 ...

  3. 从零开始学数据结构和算法(二)线性表的链式存储结构

    链表 链式存储结构 定义 线性表的链式存储结构的特点是用一组任意的存储单元的存储线性表的数据元素,这组存储单元是可以连续的,也可以是不连续的. 种类 结构图 单链表 应用:MessageQueue 插 ...

  4. 20172310 《程序设计与数据结构》实验二报告

    20172310 2017-2018-2 <程序设计与数据结构>实验二报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 仇夏 学号:20172310 实验教师:王志 ...

  5. 猿创征文|【算法入门必刷】数据结构-栈(二)

    [算法入门必刷]算法入门-数据结构-栈(二) 前言 算法入门刷题训练 题目AB2: 栈的压入.弹出序列 题目分析 理论准备 题解 小结

  6. 一些杂乱的知识点(二)

    一些杂乱的知识点(二) 一些杂乱的知识点二 menu菜单 AutoCompleteTextView控件的使用 补间动画 使用xml文件方式定义补间动画 应用程序apk的反编译 属性动画 Manager ...

  7. 数据结构自学笔记二、栈

    数据结构自学笔记二.栈 栈的定义 栈的作用 栈的顺序存储与随机存储 栈的基本功能的实现 先以顺序存储结构的栈为例. 然后再说说随机存储结构的栈吧 两栈共享空间 栈的一个重要应用--四则运算 算式的后缀 ...

  8. 考研数据结构的知识点汇总

    第一章 1.数据:是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称. 2.数据元素:数据的基本单位,(一个数据元素可由若干数据项组成). 3.数据项:数据的 ...

  9. 29、数据结构笔记之二十九数组之硬币抛掷模拟

    29.数据结构笔记之二十九数组之硬币抛掷模拟 "人生是各种不同的变故.循环不已的痛苦和欢乐组成的.那种永远不变的蓝天只存在于心灵中间,向现实的人生去要求未免是奢望.-- 巴尔扎克" ...

  10. 最值得收藏的 数据结构 全部知识点思维导图整理(王道考研), 附带经典题型整理

    本文的思维导图根据王道的数据结构书本整理而来并标记出重点内容,包括了知识点和部分课后习题 思维导图源文件已经发布在我的资源当中, 点击获取全部导图和配套OneNote笔记, 有需要的可以去 我的主页 ...

最新文章

  1. 一笔画问题 连通图(搜索+队列)
  2. 酒店差异战打响,“设计标签”能实现突围吗?
  3. libxxx.so- text relocations问题的终极解决方案
  4. Python用户界面编程PyQt5的四种的布局方式
  5. Grunt 新手指南
  6. 15-07-06 定闹钟
  7. Python存储和读取数据
  8. python中自定义类中的self_学习python第52天
  9. 2,1 模型评估与选择
  10. Web 的将来是语义的
  11. pytorch bert文本分类_一起读Bert文本分类代码 (pytorch篇 三)
  12. gg 修改器游戏被保护_2.游戏so防封的制作思路
  13. 立创EDA超详细的PCB设计流程
  14. kali破解无线WIFI密码
  15. https数据传输协议(安全套接字层超文本传输协议)
  16. [译] 为什么加密货币泡沫会破裂?
  17. Dreamweaver CS6 行为概述
  18. java的inputbox,解释InputBox函数(输入函数)的用途
  19. 电脑缓存,缓存设置(电脑缓存设置多少合理)
  20. 判断空间上三个点是否共线问题【找bug篇】

热门文章

  1. Matter-JS Render.create 渲染器创建
  2. LayaAir UI 组件 # Button 按钮
  3. Solr 4.10.3 后台管理页面介绍
  4. mysql中group_concat函数的使用以及separator的用法
  5. 阶段3 2.Spring_10.Spring中事务控制_8 spring基于纯注解的声明式事务控制
  6. Github windows客户端简单上手教程
  7. Chrome 开发者工具(DevTools)中所有快捷方式列表
  8. android selector
  9. 扩展BindingList,防止增加、删除项时自动更新界面而不出现“跨线程操作界面控件 corss thread operation”异常...
  10. [转]Artech的WCF之旅(1):创建一个简单的WCF程序