C_数据结构_链式二叉树
# include <stdio.h>
# include <malloc.h> struct BTNode
{
int data;
struct BTNode * pLchild; // p 是指针 L 是左 child 是孩子
struct BTNode * pRchild; // 表示右孩子
}; struct BTNode * CreateBTree(void); //静态创建二叉树
void PreTraverseBTree(struct BTNode * pT); //先序遍历
void InTraverseBTree(struct BTNode * pT); //中序遍历
void PostTraverseBTree(struct BTNode * pT); //后续遍历 int main(void)
{
BTNode pT = CreateBTree(); //这里不能加 void PreTraverseBTree(pT); //先序遍历
InTraverseBTree(pT); //中序遍历
PostTraverseBTree(pT); //后续遍历 return ;
} void PostTraverseBTree(struct BTNode * pT) //后续遍历
{
if (pT != NULL)
{
if (NULL != pT->pLchild)
{
PostTraverseBTree(pT->pLchild); // pT->pLchild可以代表整个左子树
}
if (NULL != pT->pRchild)
{
PostTraverseBTree(pT->pRchild);
} printf("%c\n", pT->data);
}
} void InTraverseBTree(struct BTNode * pT) //中序遍历
{
if (pT != NULL)
{
if (NULL != pT->pLchild)
{
InTraverseBTree(pT->pLchild); // pT->pLchild可以代表整个左子树
} printf("%c\n", pT->data); if (NULL != pT->pRchild)
{
InTraverseBTree(pT->pRchild);
}
}
} void PreTraverseBTree(struct BTNode * pT) //先序遍历
{
if (pT != NULL)
{
printf("%c\n", pT->data); if (NULL != pT->pLchild)
{
PreTraverseBTree(pT->pLchild); // pT->pLchild可以代表整个左子树
} if (NULL != pT->pRchild)
{
PreTraverseBTree(pT->pRchild);
}
} // if 判断不能省略 /* //伪算法 先访问跟节点
再先序访问左子树
在先序访问右子树
*/
} struct BTNode * CreateBTree(void)
{
struct BTNode pA = (struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode pB = (struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode pC = (struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode pD = (struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode pE = (struct BTNode *)malloc(sizeof(struct BTNode)); pA->data = 'A';
pB->data = 'B';
pC->data = 'C';
pD->data = 'D';
pE->data = 'E'; pA->pLchild = pB;
pA->pRchild = pC;
pB->pLchild = pB->pRchild = NULL;
pC->pLchild = pD;
pC->pRchild = NULL;
pD->pLchild = NULL;
pD->pRchild = pE;
pE->pLchild = pE->pRchild = NULL; return pA;
}
C_数据结构_链式二叉树的更多相关文章
- UVa 122 Trees on the level(链式二叉树的建立和层次遍历)
题目链接: https://cn.vjudge.net/problem/UVA-122 /* 问题 给出每个节点的权值和路线,输出该二叉树的层次遍历序列. 解题思路 根据输入构建链式二叉树,再用广度优 ...
- 链式二叉树的实现(Java)
定义树节点: package 链式二叉树; public class TreeNode { private Object data; private TreeNode left; private Tr ...
- c_数据结构_队的实现
# 链式存储#include<stdio.h> #include<stdlib.h> #define STACK_INIT_SIZE 100//存储空间初始分配量 #defin ...
- 【数据结构】链式向前星知识点&代码
代码: struct NODE{ int to; int nxt; int c; }node[MM];//链式向前星 ; void add(int a,int b,int c){ node[lcnt] ...
- C_数据结构_链表的链式实现
传统的链表不能实现数据和链表的分离,一旦数据改变则链表就不能用了,就要重新开发. 如上说示:外层是Teacher,里面小的是node. #ifndef _MYLINKLIST_H_ #define _ ...
- c_数据结构_二叉树的遍历实现
#include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 #define OVERFLOW -2 #d ...
- c_数据结构_图_邻接表
课程设计------邻接表 图的遍历实现课程设计:https://files.cnblogs.com/files/Vera-y/图的遍历_课程设计.zip #include<stdio.h> ...
- c_数据结构_栈的实现
#include<stdio.h> #include<stdlib.h> #define STACK_INIT_SIZE 100 #define STACKINCREMENT ...
- c_数据结构_链表
#include<stdio.h> #include<stdlib.h> #define ERROR 0 #define OK 1 #define OVERFLOW -2 ty ...
随机推荐
- 百度地图API开发
1.首先申请百度地图秘钥 http://lbsyun.baidu.com/ 2.需要填一个申请的界面 3.申请后会有类似的东西 4.之后参照以下网址进行MFC编译 mfc webbrowser控件使用 ...
- golang类型判断
_.ok:=interface{}(a).(B) 此语句用于判断对象a是否是B类型 也可以判断对象a是否实现了B接口 package main import "fmt" type ...
- [BUG]Appium1.9.1 这个问题竟然花了我5分钟进行定位
1.先上问题,知道是什么问题先 EE ====================================================================== ERROR: tes ...
- postgresql中uuid的使用
本文总共介绍两种方法 : 1.使用create extension命令 create extension "uuid-ossp" 安装扩展成功以后,就可以通过uuid_genera ...
- Ajax进阶之原生js与跨域jsonp
什么是Ajax? 两个数求和: 用Jquery和数据用json格式 viws函数: from django.shortcuts import render,HttpResponse # Create ...
- 【Odoo 8开发教程】第二章:Odoo生产环境部署设置
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/10792977.html 一:dbfilter 数据库访问规则设置 一个odoo实例可以连接到不同的数据库实例中 ...
- ceph 集群故障恢复
集群规划配置 master1 172.16.230.21master2 172.16.230.22master3 172.16.230.23node1 172.16.230.26node2 ...
- (3)HomeAssistant 连接MQTT
整体说明 1 自己在阿里云上搭建MQTT服务器 2 自己笔记本电脑windos10搭建HASS,配置参数连接阿里云服务器 3 手机下载MQTT调试助手,当测试端 4手机当终端---阿里云MQTT--- ...
- zabbix监控nginx连接数量
#!/bin/bash conn=`netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}' | grep "E ...
- nodejs写入json文件,格式化输出json的方法
假如我需要把data序列化成json字符串,然后写入data.json文件中,代码如下: let str = JSON.stringify(data) fs.writeFile('data.json' ...