算法与数据结构
念念不忘_lovejing
这个作者很懒,什么都没留下…
展开
-
栈
栈(stack)(数据结构中的栈)是一种动态集合,且在其上进行delete操作所移除的元素 是预先设定的。被删除的元素是最近插入的元素:栈实现的是一种后进先出的策略。 栈分为顺序栈和链栈,下面就两种栈分别用c++实现其基本功能。 一、顺序栈:(c++实现) 1. #include <iostream> using namespace std;//顺序栈; template <type原创 2015-04-28 19:59:16 · 313 阅读 · 1 评论 -
红黑树(一)认识红黑树
一、红黑树的性质。 红黑树的原型是一棵二叉搜索树,只不过它在每个结点上增加一个属性来作为该结点的颜色,颜色可以是红色或者黑色。树中的每个结点包含五个属性:key、color、left、right、parent。如果一个结点没有父结点活着子结点,则相应的指针值为NULL。我们可以把这些值为NULL的指针看作是指向树的外部结点(又叫叶结点),而把带有关键字的结点看作是树的内部结点。原创 2015-05-09 18:38:04 · 540 阅读 · 1 评论 -
红黑树(二)红黑树的插入操作
红黑树的插入用二叉搜索树的插入操作实现,先把红黑树看作一个普通的二叉搜索树,然后插入一个结点insertNode,并且将insertNode着为红色(如果将insertNode着为黑色,则必定会导致某些路径上的黑结点数目不同,要调整这个不同需要耗费比较多的时间),插入之后,我们再对红黑树进行一定的调整,以保持它的红黑性质。为了方便观察,我们先列出插入结点insertNode之后的树的可能情况图:如上原创 2015-05-11 21:08:21 · 486 阅读 · 1 评论 -
红黑书(三)红黑树的删除操作
c++完整代码(带插入、删除、查找等):#include <iostream>using namespace std;#include <stack>//颜色枚举;enum _color{ _None, _Red, _Black};//结点结构;struct tNode{ int iKey; int iColor; tNode* pP原创 2015-05-12 19:24:40 · 542 阅读 · 0 评论 -
二叉搜索树
本文用c++实现了一些二叉搜索树的基础操作以及测试代码,附带简单注释。//二叉搜索树;//节点结构体;struct treeNode{ int iData; treeNode* pParent; treeNode* pLeft; treeNode* pRight; treeNode(): pParent(nullptr), pLeft(nu原创 2015-05-04 17:40:59 · 375 阅读 · 0 评论 -
队列
队列是一种动态集合,且在其上进行的DELETE操作所移除的元素是预先设定的。在队列中,被删去的总是在集合中存在时间最长的那个元素:队列实现的是一种先进先出策略。队列也分为两种:顺序队列和循环队列。一、顺序队列(c++实现)://顺序队列;#include <iostream>using namespace std;template <typename T>class orderQueue原创 2015-04-29 01:52:19 · 458 阅读 · 1 评论 -
八大排序
//c++实现;//冒泡排序;void bubbleSort(int a[],int n){ for (int j = 0; j<n; j++) { for (int i = n-1; i>j; i--) { if (a[i] < a[i-1]) { int temp原创 2015-04-29 15:51:40 · 393 阅读 · 1 评论