- 博客(6)
- 资源 (12)
- 收藏
- 关注
原创 二叉查找树
二叉查找树, 又名二叉排序树, Binary Sort Tree。 它或是一颗空树, 或是具有下列性质的二叉树: (1) 若它的左子树不空, 则左子树上所有结点的值均小于它的根结点的值; (2) 若它的右子树不空, 则右子树上所有结点的值 均大于它的根结点的值; (3) 它的左、右子树也分别为二叉排序树。 /** * 递归查找二叉排序树T中是否存在key, * 指针f指向
2012-09-21 11:44:26 418
原创 直接插入排序
顾名思义, 直接插入排序就类似于我们打扑克牌时, 一边摸牌, 一边理牌。先拿第一张牌在手上, 再拿第二张牌时, 我们比较一下大小, 才知道是 把牌插入左边还是右边, 下面摸牌都是类似的了。 因此直接插入排序的过程为: 先将序列中的第一个记录看作是有序的子序列, 然后从第二个记录起逐个进行插入, 直至整个序列变为 按关键字递增的有序序列为止。 /** * 对顺序表L作直
2012-09-13 22:03:25 438
原创 线索二叉树
如果所用的二叉树需经常遍历或查找结点时需要某种遍历序列中的前驱和后继,那么采用线索二叉链表的存储结构是非常不错的选择。 因为以二叉链表作为存储结构时, 只能找到结点左、右孩子的信息, 而不能直接得到结点在任一序列中的前驱和后继信息, 这种信息 只有在遍历的动态过程中才能得到。 那么如何保存这种在遍历过程中得到的信息呢? 我们可以先分析一下: 对于一个有n个结点的二叉链表,
2012-09-12 21:19:42 536
原创 选择排序
/** * 简单选择排序 * */ void SelectSort(SqList *L) { int i, j, min; for (i = 1; i length; i++) { min = i; // 首先定好一个比较值, 位置为i for (j = i + 1; j length; j++) // 从j之后的数据循环查找(没有数据移动)
2012-09-06 21:31:10 313
原创 冒泡排序
/** * 冒泡排序 初级版 * **/ void BubbleSort0(SqList *L) { int i, j; for (i = 1; i length; i++) { for (j = i + 1; j length; j++) { if (L->r[i] > L->r[j]) { swap(L, i, j); }
2012-09-05 23:03:55 342
原创 二叉树
/** 二叉树的二叉链表节点结构定义*/ typedef struct BiTNode{ TElemType data; // 节点数据 struct BiTNode *left, *right; //左右子树指针 }BiTNode, *BiTree; /** 前序遍历 */ // 递归 void PreOrderTraverse(BiTree T) { if (T ==
2012-09-02 20:29:49 379
tutorial07.cpp
2019-10-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人