- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 【二十五】图的存储结构--邻接矩阵法
1、邻接矩阵法基本思想:示例:从上面两个示例中也可看出:2、数据结构的定义顶点间边的描述需要使用二维数组,所以需要动态创建二维数组;3、动态创建二维数组4、算法实现数据结构定义:typedef struct _struct_mgraph { int count; //保存顶点数目 MVertex **data; //一维数组,保存顶点的数据的地址
2015-07-09 16:50:02 843
原创 【二十四】图的定义
1、图的定义几种图结构的示例:2、无向边和无向图3、有向边和有向图4、度(Degree)5、权(Weight)6、小结 图是一种扩展的树结构,每个结点可以指向任意的其它结点 链表是特殊的树结构,树是特殊的图结构 图这种数据结构常用于网络规划和路径路径规划等领域
2015-07-09 12:48:12 619
原创 【二十三】线索化二叉树
1、提出问题在一些项目中需要频繁的遍历二叉树,但是二叉树的遍历比单链表的遍历复杂多了,并且递归总是会有额外开销。。。那有没有一种方法,能像链表那样方便的快速遍历二叉树呢?答案当然就是–线索化二叉树2、线索化二叉树 线索化二叉树指的是将二叉树中的结点进行逻辑意义上的“重排列”,使其可以线性的方式访问每一个结点 二叉树线索化之后每个结点都有一个线性下标,通过这个下标可以快速访问结点,而不需要遍历二叉树
2015-07-05 19:07:51 613
原创 【二十二】遍历二叉树
1、简介 二叉树的遍历是指从根结点开始,按照某种次序依次访问二叉树中的所有结点。通常有以下几种方式: 前序遍历 中序遍历 后序遍历 层次遍历 以上几种遍历方式,是根据在遍历时访问根结点中数据的顺序不同来命名的;2、前序遍历算法实现:void pre_order_traversal(BTreeNode *root) { if(root != NULL) { printf_Data(r
2015-07-05 13:04:26 478
原创 【二十一】创建二叉树--指路法
1、指路法定位结点从根结点开始,指出访问每个结点所走的路径。 指路法通过根结点与目标结点的相对位置进行定位 指路法可以避开二叉树递归的性质“线性”定位 2、指路法的实现在C语言中可通过bit位来指路,如果bit位为0,则“左转”,如果bit位为1,则“右转”;定义如下:#define BT_LEFT 0 #define BT_RIGHT 1typedef unsigned long long
2015-07-05 12:27:59 633
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人