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 ...
随机推荐
- Python为什么会打印两个\
在Python里面,如果\后面不是一个合法的转移字符,那么,Python会打印两个\,换句话说,Python将\也当成普通字符看待,而不是转义符的标志: >>>S = 'C:\py\ ...
- Android 开发 之 JNI入门 - NDK从入门到精通
NDK项目源码地址 : -- 第一个JNI示例程序下载 : GitHub - https://github.com/han1202012/NDKHelloworld.git -- Java传递参数给C ...
- js中斜杠转义
js中“/”不需要转义. if(myPath.indexOf("/Upload/EmailFile/")!=-1){ alert("有附件!")}
- android入门 — ListView
ListView主要是用来解决大量数据展示的问题,它的用途很广泛,几乎所有的app都会用到,比如说知乎.今日头条.微博.通讯录等. ListView允许用户通过上下滑动的方式将屏幕外的数据滚动到屏幕中 ...
- C#常见函数
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- C#中Console.ReadLine()和Console.Read()有何区别?
Console.Read 表示从控制台读取字符串,不换行. Console.ReadLine 表示从控制台读取字符串后进行换行. Console.Read() Console.ReadLine()方法 ...
- BIO、NIO、AIO通信机制
一.BIO的理解 首先我们通过通信模型图来熟悉下BIO的服务端通信模型:采用BIO通信模型的服务端,通常由一个独立的Acceptor线程负责监听客户端的连接,它接收到客户端的连接请求之后为每个客户端创 ...
- vs2015常用代码块与自定义代码块
常用代码块 代码段名 描 述 #if 该代码段用#if和#endif命令围绕代码 #region 该代码段用#region和#endregion命令围绕代码 ~ 该代码段插入一个析构函数 att ...
- 第49天:封装自己的scrollTop
一.scroll家族 offset 自己的偏移scroll滚动的 scrollTop和scrollLeftscrollTop 被卷去的头部当滑动滚轮浏览网页的时候,网页隐藏在屏幕上方的距离二.页面滚动 ...
- Python面向对象—类的继承
一个子类可以继承父类的所有属性,不管是父类的数据属性还是方法. class Father(object): num = 0 def __init__(self): print "I'm Pa ...