博客专栏  >  编程语言   >  C/C++学习

C/C++学习

C、C++相关知识及数据结构

关注
3 已关注
45篇博文
  • 删除小写字母字符串中重复字符

    删除小写字母字符串中重复元素

    2017-08-06 22:07
    433
  • 时间复杂度为O(n)的排序

    对数组a进行排序,要求时间复杂度为O(N) 以空间换时间,新建一个数组b,这里假设arr中最大的数字不超过100,b数组全部初始化为0;例如arr中有数据12,则在b中对应的下标位置+1

    2017-08-06 09:48
    426
  • 将N个字符的数组,循环右移K位。时间复杂度O(N)

    1.逆序排列 abcd: abcd1234 -> dcba1234; 2.逆序排列 1234: dcba1234-> dcba4321; 3.全部逆序 dcba4321->1234abcd。

    2017-08-06 10:58
    265
  • STL空间配置器

    为什么要有空间配置器? 1.内存碎片问题(外碎片) 由于频繁分配、释放小块内存容易在堆中造成外碎片(极端情况下就是堆中空闲的内存总量满足一个请求,但是这些空闲的块都不连续,导致任何一个...

    2017-08-02 12:54
    342
  • C语言模拟实现C++的继承多态

    C语言模拟实现C++的继承多态

    2017-07-31 22:53
    73
  • 插入排序(直接插入排序、希尔排序)

    直接插入排序直接插入排序是将第一个数当作有序区,其后的数据进行排序,依次插入有序区。

    2017-07-10 10:44
    103
  • 选择排序(直接选择排序、堆排序)

    直接选择排序直接选择排序是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。我们这里直接给出选择排序的优化,一次选出两个数据。

    2017-07-10 16:28
    67
  • 交换排序——冒泡排序

    冒泡排序第一趟冒泡将最大的数冒在最后,第二趟将次大的数冒上去,以此类推。

    2017-07-10 17:23
    67
  • 交换排序——快速排序

    void QuickSort(int *arr, int begin, int end) { assert(arr); int div = PartSort1(arr, begin...

    2017-07-11 18:38
    69
  • 归并排序

    基本思想: 它将要排序的序列分成两个长度相等的子序列,为每一个子序列进行排序,然后再将子序列合并成一个有序的序列。合并两个子序列的过程称为两路归并。

    2017-07-13 13:38
    73
  • 二叉树

    二叉树的特点1.每个节点最多有两棵子树,即二叉树中不存在度大于2的节点(分支数最大不超过2) 2.二叉树的子树有左右之分,也就是说二叉树是有序的。二叉树相关概念节

    2017-07-23 10:55
    76
  • 二叉树的基本操作

    二叉树的基本操作多是由递归来实现的,包括其创建、遍历等。 根据其结构,分为根、左子树、右子树来进行相应的操作。

    2017-07-23 12:49
    74
  • 二叉树的非递归遍历

    二叉树递归遍历的时候,将其分为根、左子树、右子树三个部分。其非递归遍历,也是分为三个部分,通过数据结构“栈”的入栈出栈操作以及其先入后出的特性,实现其遍历

    2017-07-23 12:54
    73
  • 判断一棵树是否是平衡二叉树及其时间复杂度的优化

    平衡二叉树:它是一棵空树或者左右子树的高度差绝对值不超过1,并且左右两棵子树都是平衡二叉树。要判断一棵树是否是平衡二叉树,由其定义我们很容易想到通过计算出左右两棵子树的高度及其高度差来进行判断。

    2017-07-26 15:46
    320
  • 二叉树的镜像

    求一棵二叉树的镜像,归根结底就是交换这棵树及其每个子树的左右节点。通过递归即可简单的实现。

    2017-07-26 16:14
    67
  • 判断一棵树是否是完全二叉树

    这道题可以看作是层序遍历的变形。在二叉树的层序遍历中,我们借助一个数据结构队列,根据其先进先出的性质,实现层序遍历。可以定义一个flag标志位,一旦遇到空节点,标志位生效。

    2017-07-28 15:29
    133
  • 求二叉树中两个节点的最近公共祖先

    要求考虑以下三种种情况,给出解决方案,并解决: 1:二叉树每个节点有parent(三叉链) 2:二叉树是搜索二叉树。 3:就是普通二叉树。(尽可能实现时间复杂度为O(N))

    2017-07-28 22:21
    95
  • 将二叉搜索树转换成一个排序的双向链表

    搜索树每一棵子树的左节点都比根节点小,每一个右节点都比根节点大。 根据其特性,我们可以通过中序遍历线索化的相关变形,来改变指针指向,实现变形。

    2017-07-30 14:07
    123
  • 由前序遍历和中序遍历重建二叉树

    由前序遍历和中序遍历重建二叉树

    2017-07-30 14:12
    88
  • 判断一颗二叉树是是否是另一颗树的子树

    判断一颗二叉树是是否是另一颗树的子树

    2017-07-31 10:26
    154

Linux
172522
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部