数据结构
KingKong.X ®
这个作者很懒,什么都没留下…
展开
-
堆的几个基本操作以及堆排序
#include<iostream> using namespace std; //堆是一颗完全二叉树,如果父亲结点大于等于孩子结点,那么就是大顶堆;如果父亲结点小于等于孩子结点,那么就是小顶堆 //这里以大顶堆为例 const int maxn=100; int heap[maxn],n=10; //向下调整,low指的是欲调整的数组下标,high为最后一个元素的数组下标 void...原创 2019-11-12 12:34:21 · 160 阅读 · 0 评论 -
并查集的几个基本操作
#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 · 229 阅读 · 0 评论 -
平衡二叉树的基本操作
平衡二叉树的几个基本操作 #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 · 241 阅读 · 0 评论 -
二叉查找树的基本操作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 · 113 阅读 · 0 评论 -
循环队列和链队列的C++实现
队列可以分为顺序队列,循环队列以及链队列 顺序队列: (1)如果队首元素删除之后,所有元素不移动,那么入队和出队操作的时间复杂度是O(1) (2)如果队首元素删除之后,所有元素都要往前移动一位,那么入队的时间复杂度是O(1),出队的复杂度是O(n) 第一种做法在时间复杂度上比第二种做法要优越,但是可能会发生"假溢出",也就是数组的低端还有空闲位置,但是数组的高端却被插满了 循环队列: 循环队列则可...原创 2019-10-11 09:37:39 · 297 阅读 · 0 评论 -
顺序栈和链栈(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 阅读 · 0 评论