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 ...
随机推荐
- Thunder团队第一周 - Scrum会议6
Scrum会议6 小组名称:Thunder 项目名称:爱阅app Scrum Master:苗威 工作照片: 参会成员: 王航:http://www.cnblogs.com/wangh013/ 李传康 ...
- gcc 学习笔记(一) - 编译C程序 及 编译过程
一. C程序编译过程 编译过程简介 : C语言的源文件 编译成 可执行文件需要四个步骤, 预处理 (Preprocessing) 扩展宏, 编译 (compilation) 得到汇编语言, 汇编 (a ...
- Alpha冲刺——第三天
Alpha第三天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...
- lintcode-179-更新二进制位
179-更新二进制位 给出两个32位的整数N和M,以及两个二进制位的位置i和j.写一个方法来使得N中的第i到j位等于M(M会是N中从第i为开始到第j位的子串) 注意事项 In the function ...
- 3ds Max学习日记(三)
今天把第三章搞完了,学的是样条线(splines)建模的一些操作.不过实习又有新任务了,得去研究一下如何将单张图片转化为三维模型(我擦,这神马操作),所以可能没有那么多时间愉快地与3ds max玩 ...
- 敏捷冲刺Day2
一. 每日会议 1. 照片 2. 昨日完成工作 网页设计与实现的完善 服务器的搭建前期--申请域名 激活域名 搭建服务器 分析接下来的任务与进度 总结前两天的工作 对产品的进一步展望 3. 今日完成工 ...
- js实现倒计时60秒的简单代码
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...
- google go语言开发
C:cd C:\Program Files\go\gopath\src\opmsset GOOS=linuxset GOARCH=amd64set CGO_ENABLED=0make.batgo in ...
- java 中 Stringbuff append源代码浅析
public synchronized StringBuffer append(String str) { super.append(str); return this; ...
- hdu 1879 继续畅通工程 (最小生成树)
继续畅通工程 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...