数据结构
Nemo丶
我见青山多妩媚,料青山见我应如是。
展开
-
二叉搜索树(BST) ------- 插入 查找 删除 的递归与非递归
首先应该对二叉搜索树的性质有所了解。 二叉搜索树又称为二叉排序树。当左子树不为空时,则左子树的结点值小于根结点值;右子树不为空时反之。空树也是二叉排序树。 头文件及结构体定义代码: #include <stdio.h> #include <string.h> #include <stdlib.h> typedef int DataType; ...原创 2018-08-31 16:17:11 · 587 阅读 · 0 评论 -
基础排序算法(一):冒泡,选择,插入排序及优化
冒泡排序 <默认升序> 冒泡排序就是每次将当前未排序的序列中最大元素升到最终的位置。 具体实现: 每次从第一个元素开始: 当cur > next 时,交换两个元素位置; 当cur < next 时,就从next开始继续向下遍历比较。 代码实现: template<typename T> void BubbleSort(T arr[], int n...原创 2019-03-31 22:18:20 · 233 阅读 · 0 评论 -
二叉搜索树底层的实现
二叉搜索树 概念: 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 1. 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值; 2.若它的右子树不为空,则右子树上的所有节点的值都大于根节点的值; 3. 它的左右子树也分别为二叉搜索树。 二叉搜索树的实现: 查找 插入 删除 树中节点的删除相对麻烦,需要作出如下判断:...原创 2019-04-09 17:43:03 · 371 阅读 · 0 评论 -
排序算法 --- 归并排序
归并排序是典型的分治思想(所谓分治即分而治之)的实现。具体实现就是将乱序的序列划分为两个子序列,再将子序列又分别向下划分,直到划分成最小单位(这一过程可以通过递归实现)。在不能划分时,将相邻的两个子序列进行比较,按序排列,将排好的序列向上返回,逐层地比较 -- - > 排序 - - - > 归并,直到最终序列有序。 演示: 我们随机生成一个乱序序列: 每次可以...原创 2019-05-31 22:17:14 · 188 阅读 · 0 评论