(17条消息) 『西工大-数据结构-NOJ』 017-输出以二叉树表示的算术表达式(耿6.51) 『西北工业大学』__LanXiu的博客-CSDN博客

上面是我参考的一位学长的博客。

先序建立二叉树,然后中序遍历二叉树

(1)先(根)序遍历(根左右)

(2)中(根)序遍历(左根右)

(3)后(根)序遍历(左右根)

上面参考(17条消息) 二叉树的先序、中序、后序遍历序列_bebr的博客-CSDN博客_二叉树的先序,中序,后序遍历

先序建立的二叉树是这样子的:

好了,源码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
typedef char DataType;
typedef struct BinTreeNode{DataType info;struct BinTreeNode* lchild;struct BinTreeNode* rchild;
}BinTreeNode,*PBinTreeNode; void InitializeBinTreeNode(PBinTreeNode PNode){//初始化二叉树中的单个结点 PNode->info='0';PNode->lchild=NULL;PNode->rchild=NULL;
}PBinTreeNode CreateBinTreeNode(){//创建二叉树中的单个结点 PBinTreeNode PNode=(PBinTreeNode)malloc(sizeof(BinTreeNode));if(PNode==NULL){printf("out of space!");}else{InitializeBinTreeNode(PNode);return PNode;}
}PBinTreeNode BinTreeBuilding(){//创建一棵完整二叉树  char s=getchar();if(s!='#'){PBinTreeNode cur=CreateBinTreeNode();cur->info=s; cur->lchild=BinTreeBuilding();cur->rchild=BinTreeBuilding();return cur;}else{return NULL;}
}void InOrderOutput(PBinTreeNode ptr_node){//先序遍历一棵二叉树 if(ptr_node->lchild){InOrderOutput(ptr_node->lchild);}printf("%c",ptr_node->info);if(ptr_node->rchild){InOrderOutput(ptr_node->rchild);}
}int main(){ PBinTreeNode ptr_node=BinTreeBuilding();InOrderOutput(ptr_node);return 0;
}

西工大NOJ数据结构理论——017.输出以二叉树表示的算术表达式(严6.51)相关推荐

  1. 西工大NOJ数据结构理论——013.以十字链表为存储结构实现矩阵相加(严5.27)

      我第一下拿到这个题目,第一反应就是先定义好数据结构,然后构建好十字链表基础操作的函数,也就是"创插遍历"这些操作.下面是我的定义和函数操作. typedef int ElemT ...

  2. 西工大NOJ数据结构理论——021.逆波兰表达式(严7.38)

    这道题我参考的是(80条消息) 『西工大-数据结构-NOJ』 021-逆波兰表达式(耿7.38) 『西北工业大学』__LanXiu的博客-CSDN博客 (准确来说是快期末考试了,所以各科老师都在疯 狂 ...

  3. 西工大NOJ数据结构理论——018.建立二叉树的二叉链表(严6.65)

    刚点开这道题以后,我的反应是: 1.打开老师发的PPT:DS-Chap6,然后翻到第70页: 2.跟着图解,自己照着画了三四遍(其实是抄了三四遍: 3.然后自己出了一个比较简单的题: 先序:ABDCE ...

  4. 西工大NOJ数据结构理论——010.k阶斐波那契数列(严3.32)

    k阶斐波那契序列定义:第k和k+1项为1,前k - 1项为0,从k项之后每一项都是前k项的和 k=2时,斐波那契序列为:0,1,1,2,3,5,8,13... k=3时,斐波那契序列为:0,0,1,1 ...

  5. 西工大NOJ数据结构理论——001.顺序表的插入运算(耿2.4)

    #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct NODE {int n ...

  6. 西工大NOJ数据结构理论——007.表达式括号与匹配(严3.19)

    害怕提交次数过多,然后不再跑代码,影响成绩,所以又重新创建了两个号来测这道题. 结果全都正确,但就是一直"WA",然后Debug了近5个小时才把"WA"改成&q ...

  7. 西工大NOJ数据结构理论——015.建立二叉树的二叉链表存储结构(严6.70)

    我相信,大家都已经了解了这道题的背景,以及明白了我们需要做的事情. 对于这道题的背景,相信大家都熟悉,所以就不说了. 关于我们需要做的事情,大家也已经有了自己的思路.所以,我只在下面简短的写一写我的思 ...

  8. 西工大NOJ数据结构理论——016.计算二叉树叶子结点数目(耿6.14)

    一.初级思路 拿到题之后的好习惯--先在纸上写思路: 1.构建二叉树: char* BinTreeBuilding(PBinTreeNode ptr_node,char *ptr_str){//创建二 ...

  9. 西工大NOJ数据结构理论——019.基于图的深度优先搜索策略(耿7.10)

    临近期末考了,所以思路来不及整理了,但大家还是可以仿照我的上几篇文章,"先动笔,再代码"的思路还是不变的. #include<stdio.h> #include< ...

最新文章

  1. 个人知识管理专著《你的知识需要管理》出版
  2. silverlight 打开html_Silverlight与HTML集成方法
  3. python反转单链表
  4. 23 Python常用模块(一)
  5. X11: Linux跨网络运行XWindow程序
  6. 第三次学JAVA再学不好就吃翔(part22)--匿名对象
  7. 认识 java JVM虚拟机选项 Xms Xmx PermSize MaxPermSize 区别
  8. ajax简单校验用户名是否存在
  9. 【Python】django模型models的外键关联使用
  10. 计算机网络—体系结构相关真题练习(二)
  11. MyEclipse8.5破解方法
  12. html5整个桌面背景图片,HTML5 body设置全屏背景图片 如何让body的背景图片自适应整个屏----实战经验...
  13. SolidWorks有限元分析流程
  14. ubuntu14.04 + dlib19.2+【 C++ 】+Face Landmark Detection
  15. 项目管理到底是一个什么样的职位,具体都做些什么事情?
  16. fits文件的读取与查看
  17. (中)苹果有开源,但又怎样呢?
  18. java ppt转pdf_JAVA如何把word,excel,ppt转成PDF,已经过测试成功。
  19. 三十四、Zabbix-触发器、动作及邮件报警
  20. linux meld

热门文章

  1. coalesce函数用法php,如何使用Oracle中的 COALESCE 函数
  2. 硬盘三大种类(SSD/HHD/HDD)
  3. 人生的终极问题到底是什么
  4. kettle视频教程
  5. 微信小程序开发之麦克风动画 帧动画 放大 淡出
  6. 台式液晶计算机功耗,台式电脑功率一般多大 台式机功率有多少【详细介绍】...
  7. Phone List 南邮NOJ 1522
  8. oracle数据库中nvarchar,Oracle数据库中的varchar,varchar2,nvarchar,nvarchar2区别及用
  9. 中高层的领导者或管理者对公司的作用和影响更为广泛、更为深远
  10. 使用U盘安装Linux系统