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 ...
随机推荐
- Martian Addition
In the 22nd Century, scientists have discovered intelligent residents live on the Mars. Martians are ...
- Linux GCC编译
.a 静态库(打包文件 由多个.o文件打包而成) .c 未经过预处理的C源码 .h C头文件 .i 经过预处理的C源码(将头文件内容加载到c文件中) .o 编译之后产生的目标文件 .s 生成的汇编语言 ...
- MyEclipse2013使用总结
1.myeclipse10中怎样将建的包设置成树形结构或者并列结构. 右上边三角那里进去设置选第一个是显示完整的包名,第二个显示的是树形结构这种方法没效 2.从高版本到项目的低版本的MyEclipse ...
- Alpha 冲刺2
队名:日不落战队 安琪(队长) 今天完成的任务 组织第二次站立式会议. 完成40%个人信息前端界面. 明天的计划 完成剩下的60%个人信息前端界面. 还剩下的任务 个人信息修改前端界面. 遇到的困难 ...
- Linux less命令语法
一.Linux less命令语法 less [参数] 文件 less命令非常强大,在此只介绍几个常用的参数,更多参数使用man less来查看Linux帮助手册. -b <缓冲区大小> 设 ...
- centos7 下pycharm无法输入中文问题解决方案
作者使用的pycharm是2017.2 在pycharm.sh脚本的如下行(大约在201行): # -------------------------------------------------- ...
- dedecms给原模型添加新字段
1.进入dedecms后台 2.点击核心=>频道模型=>内容模型管理(在这里可以看到dedecms预设的模型设置) 3.选中我们需要的模型,点击更改,跳入以下页面 4.点击字段管理(可以看 ...
- 【Python】python动态类型
在python中,省去了变量声明的过程,在引用变量时,往往一个简单的赋值语句就同时完成了,声明变量类型,变量定义和关联的过程,那么python的变量到底是怎样完成定义的呢? 动态类型 python使用 ...
- Python使用requests模块下载图片
MySQL中事先保存好爬取到的图片链接地址. 然后使用多线程把图片下载到本地. # coding: utf-8 import MySQLdb import requests import os imp ...
- [洛谷P5091]【模板】欧拉定理
题目大意:求$a^b\bmod m(a\leqslant10^9,m\leqslant10^6,b\leqslant10^{2\times10^7})$ 题解:扩展欧拉定理:$$a^b\equiv\b ...