通向码农的道路(-)
来源:互联网 发布:淘宝双12报名入口 编辑:程序博客网 时间:2024/05/16 12:05
树篇
为什么我们要学习数据结构?数据结构和数据库的区别在哪里?
数据结构是解决计算机程序在内存中存储数据的一门学科,它是解决现实生活中非数值的程序设计问题。
为什么数据结构这么难?因为现实生活都是以一对多,多对多的关系存在,而通过数据结构将这些抽象复杂的事物按照计算机内存的形式
放在一条线性上,这就是组合数学所研究的对象。
数据库是研究数据在硬盘上的存储过程
以下C实现一个二叉树的过程:
#include "stdio.h"
#include "malloc.h"
#include "conio.h"
typedef struct BiTNode{
char data;
struct BiTNode *lchild , *rchild;
} BiTNode , *BiTree;
void CreatBiTree(BiTree *T){
char c;
scanf("%c",&c);
if(c == ' ')//通过空格来使得左右子树是否存在,输入的空格必须超过输入n的n+1个,因为使用2个递归创建,用空格作为结束条件
*T = NULL;
else{
*T = (BiTNode * )malloc(sizeof(BiTNode));
(*T)->data = c;
CreatBiTree(&((*T)->lchild)); //通过递归来创建左子树,整个数据按照线性关系来存放,
CreatBiTree(&((*T)->rchild)); //右子树
}
}
void visit(char c,int level){
if(c == 'D')
printf("%c is at %d lever of BiTree\n",c,level);
}
void PreOrderTraverse(BiTree T,int level){ //通过线性关系来遍历整个子树
if(T){
visit(T->data,level);
PreOrderTraverse(T->lchild,level+1); //当满足D时输出D的层次深度
PreOrderTraverse(T->rchild,level+1);
}
}
int main(void)
{
int level = 1;
BiTree T = NULL;
CreatBiTree(&T); /./创建一个二叉树
PreOrderTraverse(T,level);//遍历二叉树,
return 0;
}
输入ABCDEF
printf("%c is at %d lever of BiTree\n",c,level); 4层
- 通向码农的道路(-)
- 通向码农的道路(开源 libevent min_heap 实现)
- 通向码农的道路(面试官)
- 通向码农的道路(运镖系统,推荐算法)
- 通向码农的道路(服务器架构设计(一))
- 通向码农的道路(enet开源翻译计划 一)
- 通向码农的道路(enet开源翻译计划 二)
- 通向架构师的道路
- 通向架构师的道路
- TYVJ 通向聚会的道路
- tyvj1467 通向聚会的道路
- 通向码农的道路(从头写stl map 基本实现)
- 一条不知通向代码的道路
- 通向架构师的道路(第二十五天)SSH的单元测试与dbunit的整合
- 通向架构师的道路(第二十五天)SSH的单元测试与dbunit的整合
- 通向架构师的道路(第二十五天)SSH的单元测试与dbunit的整合
- 通向架构师的道路(第二十五天)SSH的单元测试与dbunit的整合
- 通向架构师的道路(第二十五天)SSH的单元测试与dbunit的整合
- UVA 331 交换的方案数
- JAVA实现远程控制(JAVA in RemoteControl)
- 如何查看arm-linux-gcc某个版本支持的-mcpu,-march可选值
- LRU cache实现 (Java)
- HDOJ 2852 KiKi's K-Number(树状数组)
- 通向码农的道路(-)
- Android项目 构造函数 系统检测不出来
- 遥感书籍下载
- zju3033(bellman_ford)
- Java遍历文件夹的2种方法
- 2012.8.11
- 毕业后生活(一) 记录一个屌丝90后毕业生的人生轨迹
- 各级和弦的功能
- 20120811训练赛总结