数据结构
文章平均质量分 82
haliofwu
不想成为顶级美食家的web前端开发工程师都不是好产品经理。
展开
-
树、森林与二叉树
针对以上问题,解决转换的概念: 1.树、森林到二叉树的转换(1)将树转换为二叉树 树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。按照这种关系很自然地就能将树转换成相应的二叉树: ①在所有兄弟结点之间加一连线; ②对每个结点,除了保留与其长子的连线外,去掉该结点与其它孩子的连线。【例】下面(a)图所示的树可转换为(c)图所示的二叉树。转载 2014-12-11 13:04:08 · 484 阅读 · 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 · 628 阅读 · 0 评论 -
逆波兰式 栈实现
因为做二叉树非递归的前后中遍历,用到栈的方法。xpp说那就干脆把四则运算,逆波兰式 栈的实现做了。这是参考别人的程序写的,注释比较乱。而且这个是直接实现计算机计算的四则运算,没有将逆波兰的表达式打印出来。今天腰太酸了,明天改一改,把逆波兰式打印出来噻333333.栈还有迷宫算法是不是???现在脑子里之前看的非递归遍历都想不起来了我擦#include "stdafx.h"#include原创 2014-12-10 23:11:20 · 902 阅读 · 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 · 891 阅读 · 0 评论 -
二叉查找树、红黑树、B树、B+树、AVL树
不求甚解,但求掌握基础的了解。红黑树:红黑树,一种二叉查找树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。二叉查找树的一般性质:1.在一棵二叉查找树上,执行查找、插入、删除等操作,的时间复杂度为O(lgn)。 因为,一棵由n个结点,随机构造的二叉查找树的高度为lgn,所以顺理成章,一般操作的执行时间为O(lgn)。 //至于n个结点转载 2015-01-02 16:58:30 · 402 阅读 · 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 · 399 阅读 · 0 评论 -
经典排序算法(时间复杂度详解)
动画网站动画展示排序算法 对比具体实现来看。主要术语解释:稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度: 一个算法执行所耗费的时间。空间复杂度: ...转载 2018-03-02 15:55:46 · 1600 阅读 · 0 评论