![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
3l-li
是问题总有解决方案!
展开
-
查找二叉树(即二叉排序树)的学习
一棵二叉排序树,或者是一棵,或者满足以下递归条件:1)查找树的左、右各是一棵查找树。2)若查找树的左子树非空,则其左子树的各结点的值均小于根结点的值。3)若查找树的右子树非空,则其右子树的各结点的值均大于根结点的值。查找二叉树的基本操作:1)查找 把要查找的键值key从根结点开始比较,若比根结点小,则往左子树这边开始比较,依次重复这样的操作,直到找到所要的key值;若比根结点大,反原创 2015-07-28 00:03:27 · 544 阅读 · 0 评论 -
最优二叉树(哈夫曼树)
最优二叉树是一种带权路径最小的树1)树的路径长度:上图的8的路径长度为3,14的路径长度为1,…….2)树的带权路径 树的带权路径=叶子结点的路径长度X权值(上图树的带权路径为1x1+8x3+4x3+2x2=41)3)构造哈夫曼树 方法: 第一步:以这8个结点作为根结点的权值构造具有8棵树的森林; 第二步:从这些根结点中选最小的两个结点构成一棵二叉树,把5和3组合一起得一个新结点原创 2015-07-29 22:02:35 · 1224 阅读 · 0 评论 -
拓扑排序
求下图的拓扑序列:求法:1 找入度为0的节点;2 把该节点的处有向边删掉;3 排序成如下图:4 组合得到所求拓扑排序序列为:012457013657 023457 023657原创 2015-09-04 00:20:58 · 299 阅读 · 0 评论 -
快速排序
思想就是:把比某个数大的数放到同一边,把比某个数小的数放到另一边,然后就是重复递归调用。 快排算法也叫分治法。#include<stdio.h>void QuickSort(int *a, int low, int high);//调用递归排序int FindPos(int *a, int low, int high);//找中轴数int main(){ int a[6] = { 0,原创 2015-10-19 13:28:09 · 363 阅读 · 0 评论 -
汉诺塔
#include<stdio.h>void hannuota(int n, char A, char B, char C){ if (n == 1) printf("把第%d个盘子从%c柱子移动到%c柱子\n", n, A, C); else { hannuota(n - 1, A, C, B); printf("把第%d个原创 2015-10-20 20:39:11 · 448 阅读 · 0 评论