C语言数据库-二叉树
一、定义
二、基本概念

(2)只有一个根结点的二叉树——如图(b);
三、类型
四、相关术语
// main.c
// C语言-二叉树
//
// Created by rimi on 2017/5/24.
// Copyright © 2017年 rimi. All rights reserved.
#include <stdio.h>
#include <stdlib.h>
struct TreeNode {
char data;
struct TreeNode * left;
struct TreeNode * right;
};
// 创建树
struct TreeNode * createTree();
// 先序遍历
void preTraverse(struct TreeNode * root);
// 中序遍历
void centerTraverse(struct TreeNode * root);
// 后序遍历
void backTraverse(struct TreeNode * root);
int main(int argc, const char * argv[]) {
// preTraverse(createTree());
centerTraverse(createTree());
// backTraverse(createTree());
return ;
}
// 创建树
struct TreeNode * createTree(){
struct TreeNode * pa = (struct TreeNode *)malloc(sizeof(struct TreeNode));
struct TreeNode * pb = (struct TreeNode *)malloc(sizeof(struct TreeNode));
struct TreeNode * pc = (struct TreeNode *)malloc(sizeof(struct TreeNode));
struct TreeNode * pd = (struct TreeNode *)malloc(sizeof(struct TreeNode));
struct TreeNode * pe = (struct TreeNode *)malloc(sizeof(struct TreeNode));
struct TreeNode * pf = (struct TreeNode *)malloc(sizeof(struct TreeNode));
struct TreeNode * pg = (struct TreeNode *)malloc(sizeof(struct TreeNode));
pa->data = 'A';
pb->data = 'B';
pc->data = 'C';
pd->data = 'D';
pe->data = 'E';
pf->data = 'F';
pg->data = 'G';
pa->left = pb;
pa->right = pc;
pb->left = pd;
pb->right = NULL;
pc->left = pe;
pc->right = pf;
pd->left = NULL;
pd->right = pg;
pe->left = NULL;
pe->right = NULL;
pf->left = NULL;
pf->right = NULL;
pg->left = NULL;
pg->right = NULL;
return pa;
}
// 先序遍历
void preTraverse(struct TreeNode * root){
if (root != NULL) {
printf("%c\n", root->data);
preTraverse(root->left);
preTraverse(root->right);
}
}
// 中序遍历
void centerTraverse(struct TreeNode * root){
if(root !=NULL) {
centerTraverse(root ->left);
printf("%c \n",root ->data);
centerTraverse(root->right);
}
}
// 后序遍历
void backTraverse(struct TreeNode * root){
if(root !=NULL){
backTraverse(root ->left);
backTraverse(root ->right);
printf("%c \n",root ->data);
}
}
C语言数据库-二叉树的更多相关文章
- C语言数据库编程
----摘自个人C语言数据库项目报告 3.4逻辑结构的SQL语句实现 创建基本表: 3.4-1建立商品表: create table goods(goods_id int primary key,go ...
- C语言实现二叉树-02版
---恢复内容开始--- 昨天,提交完我们的二叉树项目后,今天早上项目经理早早给我打电话: 他说,小伙子干的不错.但是为什么你上面的insert是recusive的呢? 你难道不知道万一数据量大啦!那 ...
- C语言实现二叉树-利用二叉树统计单词数目
昨天刚参加了腾讯2015年在线模拟考: 四道大题的第一题就是单词统计程序的设计思想: 为了记住这一天,我打算今天通过代码实现一下: 我将用到的核心数据结构是二叉树: (要是想了解简单二叉树的实现,可以 ...
- Atitit.跨语言数据库db api兼容性 jdbc odbc ado oledb 增强方案
Atitit.跨语言数据库db api兼容性 jdbc odbc ado oledb 增强方案 1. 跨语言db api兼容性..1 2. 目前访问数据库的接口很多.比较常用的jdbc odbc 以 ...
- C语言实现二叉树
二叉树的重要性就不用多说啦: 我以前也学习过,但是一直没有总结: 网上找到的例子,要么是理论一大堆,然后是伪代码实现: 要么是复杂的代码,没有什么解释: 最终,还是靠FQ找到一些好的文章,参考地址我会 ...
- C语言实现二叉树的基本操作
二叉树是一种非常重要的数据结构.本文总结了二叉树的常见操作:二叉树的构建,查找,删除,二叉树的遍历(包括前序遍历.中序遍历.后序遍历.层次遍历),二叉搜索树的构造等. 1. 二叉树的构建 二叉树的基本 ...
- R语言︱ 数据库SQL-R连接与SQL语句执行(RODBC、sqldf包)
要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 数据库是极其重要的R语言数据导入源 ...
- C语言描述二叉树的实现及操作(链表实现)
概述 二叉树为每个节点最多有两个儿子节点(左儿子节点和右儿子节点)的树. 前序遍历:根结点 ---> 左子树 ---> 右子树. 中序遍历:左子树---> 根结点 ---&g ...
- 使用go语言数据库
1.下载并导入数据库驱动包(注意配置环境变量.数据库.go.以及ENV) 这里选择了Go-MySQL-Driver这个实现.地址是:https://github.com/go-sql-driver/m ...
随机推荐
- Unicode,UTF-32,UTF-16,UTF-8到底是啥关系?
编码的目的,就是给抽象的字符赋予一个数值,好在计算机里面表示.常见的ASCII使用8bit给字符编码,但是实际只使用了7bit,最高位没有使用,因此,只能表示128个字符:ISO-8859-1(也叫L ...
- PHP 将一个字符串部分字符用$re替代隐藏
<?php/** * 将一个字符串部分字符用$re替代隐藏 * @param string $string 待处理的字符串 * @param int $start 规定在字符串的何处开始, * ...
- Alpha 冲刺4
队名:日不落战队 安琪(队长) 今天完成的任务 组织第四次站立式会议. 完成40%草稿箱前端界面. 明天的计划 剩下的60%草稿箱前端界面. 如果还有时间,尝试去调用数据. 还剩下的任务 回收站前端界 ...
- 《Debian标准教程》摘录2则
1.克隆Debian系统 如果使用的Debian系统只有使用apt安装的软件包,可以使用下面的脚本来安装一个完全一样的新系统. #在源主机上 dpkg --get-selections > se ...
- PAT 甲级 1038 Recover the Smallest Number
https://pintia.cn/problem-sets/994805342720868352/problems/994805449625288704 Given a collection of ...
- union查询
select id, uid, money, FROM_UNIXTIME(created) as created, type FROM ( #type=1是 cjw_finance_bonus ...
- PHP中如何使用Redis接管文件存储Session详解
https://www.jb51.net/article/151580.htm 前言 php默认使用文件存储session,如果并发量大,效率会非常低.而redis对高并发的支持非常好,可以利用red ...
- DELPHI BOOKMARK使用
关于书签(BookMark)操作: 书签操作主要用于在表中快速地定位记录指针,在应用程序中常常要保存记录指针所在的位置,在进行其他处理之后,希望能快速地返回到先前指针所在的位置,此时,使用 ...
- 反向传播算法 Backpropagation Algorithm
假设我们有一个固定样本集,它包含 个样例.我们可以用批量梯度下降法来求解神经网络.具体来讲,对于单个样例(x,y),其代价函数为:这是一个(二分之一的)方差代价函数.给定一个包含 个样例的数据集,我们 ...
- 【bzoj4278】[ONTAK2015]Tasowanie 贪心+后缀数组
题目描述 给定两个数字串A和B,通过将A和B进行二路归并得到一个新的数字串T,请找到字典序最小的T. 输入 第一行包含一个正整数n(1<=n<=200000),表示A串的长度. 第二行包含 ...