- 博客(7)
- 收藏
- 关注
原创 素数筛选以及快速幂和慢速乘的实现
最大公约数 int gcd(int a,int b)//辗转相除法求最大公约数 { while(b) { int c=a%b; a=b; b=c; } return a; } 最小公倍数 由于a*b有可能会溢出,因此可以先除再乘,因为GCD是它们的最大公约数,因此a/GCD一定是个整数 int lcm(int a,i...
2019-11-27 22:00:08 233
原创 堆的几个基本操作以及堆排序
#include<iostream> using namespace std; //堆是一颗完全二叉树,如果父亲结点大于等于孩子结点,那么就是大顶堆;如果父亲结点小于等于孩子结点,那么就是小顶堆 //这里以大顶堆为例 const int maxn=100; int heap[maxn],n=10; //向下调整,low指的是欲调整的数组下标,high为最后一个元素的数组下标 void...
2019-11-12 12:34:21 160
原创 并查集的几个基本操作
#include<iostream> using namespace std; int father[100]; //并查集的初始化,每个元素的根结点都是自己 void initialize(int n) { for(int i=1;i<=n;i++) { father[i]=i; } } //并查集的查找(循环),同一个集合中只存在一个...
2019-11-11 22:17:58 232
原创 平衡二叉树的基本操作
平衡二叉树的几个基本操作 #include<iostream> #include<algorithm> using namespace std; //平衡二叉树(AVL) class node { public: int data,height; node*lchild; node*rchild; node(int data) { ...
2019-11-11 21:49:31 243
原创 二叉查找树的基本操作C++实现
最近在看胡凡的《算法笔记》,将其中的内容理解了一下,然后进行实现 #include<iostream> using namespace std; class node { public: node*lchild; node*rchild; int data; node(int data):data(data){} }; //二叉查找树的查找 void ...
2019-11-08 11:10:12 116
原创 顺序栈和链栈(C++实现)
栈的实现如下 const int stackSize = 10; template<typename T> class Stack { private: int top; T data[stackSize]; public: Stack(); void insertStack(T x); T exitStack(); T getStack(); bool empty();...
2019-10-11 11:33:58 205
原创 循环队列和链队列的C++实现
队列可以分为顺序队列,循环队列以及链队列 顺序队列: (1)如果队首元素删除之后,所有元素不移动,那么入队和出队操作的时间复杂度是O(1) (2)如果队首元素删除之后,所有元素都要往前移动一位,那么入队的时间复杂度是O(1),出队的复杂度是O(n) 第一种做法在时间复杂度上比第二种做法要优越,但是可能会发生"假溢出",也就是数组的低端还有空闲位置,但是数组的高端却被插满了 循环队列: 循环队列则可...
2019-10-11 09:37:39 299
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人