
数据结构/算法
文章平均质量分 72
A_YT
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
七种排序算法及其复杂度
1.冒泡排序时间复杂度:O(N^2)思想:从后往前开始,相邻的两两进行比较,将小的逐渐移到前面。(也可以从前往后开始两两相邻的进行比较)代码:void BubbleSort(int *a, int N){ if (a == NULL || N <= 0) return ; int i, j; for (i = 0; i < N; i++) { for (j原创 2017-03-28 20:40:04 · 2001 阅读 · 0 评论 -
堆相关操作
#include using namespace std;void swap(int *a, int *b){ int tmp = *a; *a = *b; *b = tmp;}/*1.结点i的左右子节点下标分别为2i+1,2i+22.结点i的父结点下标为(i-1)/23.一颗完全二叉树的最后一个拥有子结点的结点下标为(n/2 - 1),n为结点数*///下滤操作原创 2017-03-28 22:07:13 · 479 阅读 · 0 评论 -
判断一棵树为另一颗树的子树
题目: 有两颗二叉树,判断其中一颗A是否是另一颗B的子树。解决思想: 按先序遍历树B的每个结点,判断结点是否和树A的根结点相同。若相同,再判断以该结点为根结点的树是否有和树A相同的子树。代码:#include using namespace std;struct BTree{ int m_val; BTree *m_lchild; BT原创 2017-03-16 17:02:10 · 1754 阅读 · 0 评论 -
树的镜向
问题: 求一颗树的镜向解决思路: 镜向其实就是将所有结点的左右两个子结点交换就行。所以可以遍历二叉树,遍历到一个结点时,交换其左右两个子结点。代码:递归版本void Mirro(BTree *T){ if (T == NULL || (T->left == NULL && T->right == NULL)) return ; BT原创 2017-03-16 17:39:39 · 470 阅读 · 0 评论