数据结构
文章平均质量分 82
haliofwu
不想成为顶级美食家的web前端开发工程师都不是好产品经理。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树、森林与二叉树
针对以上问题,解决转换的概念: 1.树、森林到二叉树的转换 (1)将树转换为二叉树 树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。按照这种关系很自然地就能将树转换成相应的二叉树: ①在所有兄弟结点之间加一连线; ②对每个结点,除了保留与其长子的连线外,去掉该结点与其它孩子的连线。 【例】下面(a)图所示的树可转换为(c)图所示的二叉树。转载 2014-12-11 13:04:08 · 520 阅读 · 0 评论 -
二叉树前后中序遍历的非递归实现
其中前序和中序,简单且容易理解。后序遍历有难度。 #include "stdafx.h" #include "stdio.h" #include "stdlib.h" #include "string.h" typedef struct BiNode { char data; struct BiNode *lchild,*rchild; }BiNode,*原创 2014-12-10 15:05:02 · 673 阅读 · 0 评论 -
逆波兰式 栈实现
因为做二叉树非递归的前后中遍历,用到栈的方法。xpp说那就干脆把四则运算,逆波兰式 栈的实现做了。 这是参考别人的程序写的,注释比较乱。而且这个是直接实现计算机计算的四则运算,没有将逆波兰的表达式打印出来。今天腰太酸了,明天改一改,把逆波兰式打印出来噻333333.栈还有迷宫算法是不是???现在脑子里之前看的非递归遍历都想不起来了我擦 #include "stdafx.h" #include原创 2014-12-10 23:11:20 · 944 阅读 · 0 评论 -
二叉树顺序结构实现/链式结构实现
程杰《大话数据结构》这部分的源码乱起八糟的。自己总结下: 顺序结构: #include "stdafx.h" #include "string.h" #include "stdio.h" #include "stdlib.h" #include using namespace std; #define ok 1 #define error 0 #def原创 2014-12-10 11:32:50 · 951 阅读 · 0 评论 -
二叉查找树、红黑树、B树、B+树、AVL树
不求甚解,但求掌握基础的了解。 红黑树: 红黑树,一种二叉查找树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 二叉查找树的一般性质: 1.在一棵二叉查找树上,执行查找、插入、删除等操作,的时间复杂度为O(lgn)。 因为,一棵由n个结点,随机构造的二叉查找树的高度为lgn,所以顺理成章,一般操作的执行时间为O(lgn)。 //至于n个结点转载 2015-01-02 16:58:30 · 437 阅读 · 0 评论 -
并查集
原文地址:http://www.cnblogs.com/cyjb/p/UnionFindSets.html 结合这篇文章,以及2012小米朋友圈的一道笔试题,可以很好的理解。 题目如下: 假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友),则认为他们属于同一个朋友圈,请写程序求这n个人里一共有多少个朋友圈。 假如:n=5,m=3,r={转载 2015-01-02 16:36:05 · 436 阅读 · 0 评论 -
经典排序算法(时间复杂度详解)
动画网站 动画展示排序算法 对比具体实现来看。 主要术语解释: 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成; 外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行; 时间复杂度: 一个算法执行所耗费的时间。 空间复杂度: ...转载 2018-03-02 15:55:46 · 1655 阅读 · 0 评论
分享