[置顶] 从大到小输出二叉搜索树中键值不小于K的关键字

概要这是王道数据结构复习资料上的一道题。该书给出了递归算法,但是解析中对于非递归算法说使用非递归中序遍历的思路进行解答,这明显有错误。根据 二叉搜索树的性质可知,二叉搜索树的中序遍历是从小到大的序列,但是题意却是要从大到小输出,故需要采用右根左的遍历方式才能得到题意所要求的序列。算法如下:void FindK(BinarySearchTree* BST , int k){ stack<Bin...
阅读(406) 评论(0)

[置顶]

概念堆是一个用数组表示的完全二叉树,并满足以下两个特性: 1)父节点的键值总是大于或等于(小于等于)其子树上的任意结点 2)每个结点的左子树和右子树都是个堆。 如果父节点的键值总是大于等于任何一个子节点的键值,那么这时称之为最大堆或者大顶堆。反之,如果父节点的键值总是小于等于任何一个子节点的键值,那么这时称之为最小堆或者小顶堆。插入操作算法如下: 1)如果堆已满则不能插入 1)否则,把需要...
阅读(238) 评论(0)

[置顶] 平衡二叉树

由于平衡二叉树的前提是二叉搜索树,故关于二叉搜索树的内容请移步如下网址:http://blog.csdn.net/qq_30091945/article/details/77720865概念平衡因子:每个结点的平衡因子就是左右子树的高度之差,即可用如下公式表示:BF(T) = Hl-Hr 平衡二叉树:平衡二叉树可能是空树,也有可能是左右子树高度之差小于等于1的树,即平衡因子的绝对值小于等于1。...
阅读(356) 评论(0)

[置顶] 二叉搜索树

关于二叉树的基本操作请转到我的另一篇博客: http://blog.csdn.net/qq_30091945/article/details/77531651概念Binary Search Tree,也可称为二叉搜索树,二叉排序树。 它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它...
阅读(257) 评论(0)

[置顶] 并查集

并查集并查集是一种树形结构,又叫“不相交集合”,保持了一组不相交的动态集合,每个集合通过一个代表来识别,代表即集合中的某个成员,通常选择根做这个代表。初始化用数组来建立一个并查集,数组下标代表元素,下标对应的值代表父节点,全部初始化为-1,根节点为一个集合的元素个数,数组的长度为并查集的初始连通分量的个数。并查集要求各集合是不相交的,因此要求x没有在其他集合中出现过。算法如下://构造函数 UF(...
阅读(292) 评论(0)

[置顶] 2014年计算机联考真题——带权路径长度之和

思路如下: 利用层次遍历的思路,记录每层的层数level,对于该层的每个叶节点的带权路径长度 = data*(level-1) 算法如下: //求叶子节点带权路径长度之和 int WPL(BinaryTree* T){ BinaryTree* queue[100]; //构造容量足够大的队列 Binar...
阅读(240) 评论(0)

[置顶] 递归求序列最大最小值

这学期总算开了算法课了,不得不吐槽,大四上学期开这课,时间很尴尬。不多说了,第一节课老师留了道题,要求在一个递归函数里求序列的最大最小值。算法思路: 1)如果数组长度为1,则最大值与最小值相等 2)如果数组长度为2,则最大值与最小值各位其中一个。 3)如果数组长度大于2,那么采用二分策略,递归求前一半的最大最小值,与后一半的最大最小值,之后两两比较后的数组的最大最小值。代码如下:#includ...
阅读(582) 评论(0)

[置顶] 二叉树的构建及其遍历算法

概要二叉树是一种非常重要的数据结构,很多其他数据机构都是基于二叉树的基础演变过来的。二叉树有先、中、后,层次四种遍历方式,因为树的本身就是用递归定义的,因此采用递归的方法实现三种遍历,不仅代码简洁且容易理解,但其开销也比较大,而若采用非递归方法实现先中后3种遍历,则要用栈来模拟实现(递归也是用栈实现的)。下面先简要介绍先中后三种遍历方式的递归实现,再详细介绍先中后三种遍历方式的非递归实现与层次遍历。...
阅读(301) 评论(0)

[置顶] 栈的应用——表达式求值

概要表达式求值问题可以说是一个经典问题。具体思路就是首先把输入的中缀表达式转换为后缀表达式,然后再根据后缀表达式进行计算求值。中缀表达式转换为后缀表达式首先我们设定运算符在进栈前与进栈后的优先级: 首先在栈把“#”进行压栈,并在中缀表达式追加“#”。“#”作为结束标志。 对中缀表达式进行遍历,遇到数字进行输出到后缀表达式中 如果遇到运算符,把栈顶的元素(前者)的栈内优先级与即将入栈元素(后者)的栈外...
阅读(292) 评论(0)

[置顶] 单链表

现在已经进入专业课复习,王道的数据结构复习指导的第一个数据结构虽然是顺序表,但是过于简单,就不想写了。现在复习到链表,首先单链表数其他链表的基础。所以首先把单链表所有基础操作全部写一遍。包括建表,插入,删除,逆序,判断是否为空,合并等。我这里写的是带有头结点的单链表,头结点保存链表长度。代码如下:#include using namespace std;//带头结点的单链表类,...
阅读(345) 评论(0)

[置顶] 2013年计算机联考真题——确定主元

思路: 首先把主元 确定为A[0],并计数cnt=1。之后从下标为1开始遍历数组, 1.如果A[i] == A[0],cnt++ 2.如果不等,则如果cnt>0,cnt–,如果cnt<0,主元设定为A[i],cnt=1。 遍历结束后,再遍历一遍,确定主元的出现的次数,大于n/2,返回主元,否则返回-1代码如下:#include using namespace std;i...
阅读(285) 评论(0)

[置顶] 2011年计算机联考真题——寻找2个序列的中位数

思路: 设定两个升序序列分别为A与B,中位数分别为a和b。 1.如a=b,则即为所求,算法结束。 2.a#include using namespace std;int Median(int* A,int* B,int n) { int s1 = 0 , d1 = n-1, m1 = 0; int s2 = 0 , d2 = n-1, m2 = 0;...
阅读(276) 评论(0)

[置顶] 2010年计算机联考真题——一维数组循环左移

前记从七月份决定开始考研,中间由于听报告,回家复习数学和政治但无论一些时间。自己准备报考山东大学计算机技术的专硕,幸好是数学是考数学二,专业课一直有一门数据结构,这位我的复习节省了很多时间,不想数学一和统考的计算机基础综合的专业复习那么费劲。现在数据结构的复习完全是参照《王道考研系列——2018年数据结构考研复习指导》在复习。对于数据结构虽然到时候是手写算法,但是毕竟这是编程,对于算法能否正确实现并...
阅读(282) 评论(0)

[置顶] 社团活动学分管理系统

摘要之前忙于期末考试,所以没有时间把期末之前的课设写成博客。这次的课设虽然给定了可选题目,但是老师说做什么都可以。看见可选题目里有关于学分管理系统,考虑到时间紧迫,同时兼顾期末考试,故选择了这个社团学分管理系统。这里我也很感谢自己在校团委管理全校活动学分的同学为我这次课设提供了真实的学分数据。资源已经上传,如要下载请移步:http://download.csdn.net/detail/qq_3009...
阅读(558) 评论(0)

序列交换

牛牛有一个长度为n的整数序列s,羊羊要在牛牛的序列中选择不同的两个位置,然后交换这两个位置上的元素。现在需要求出羊羊交换后可以得到的不同的序列个数。(注意被交换的两元素值可能相同)。 如序列{1, 47},输出1.羊羊必须交换仅有的两个元素,得到序列{47, 1}。羊羊必须交换,不能保留原有的序列。 {1, 2, 1},输出3.羊羊通过交换可以得到{2, 1, 1},{1, 1, 2},{1,...
阅读(582) 评论(2)

膨胀的牛牛

牛牛以草料为食。牛牛有一天依次遇到n堆被施展了魔法的草料,牛牛只要遇到一堆跟他当前相同大小的草料,它就会把草料吃完,而使自己的大小膨胀一倍。一开始牛牛的大小的是A,然后给出牛牛依次遇到的n堆草料的大小。请计算牛牛最后的大小。 输入描述: 输入包括两行,第一行包含两个整数n和A(1 ≤ n ≤ 200, 1 ≤ A ≤ 1,000,000,000) 第二行包括n个整数,表示牛牛依次遇到的草料堆...
阅读(317) 评论(0)

黑化的牛牛

牛牛变得黑化了,想要摧毁掉地球。但他忘记了开启地球毁灭器的密码。牛牛手里有一个字符串S,牛牛还记得从S中去掉一个字符就恰好是正确的密码,请你帮牛牛求出他最多需要尝试多少次密码。 如样例所示S = “ABA”,3个可能的密码是”BA”, “AA”, “AB”. 当S = “A”, 牛牛唯一可以尝试的密码是一个空的密码,所以输出1. 输入描述: 输入包括一个字符串S,字符串长度length(1...
阅读(401) 评论(0)

黑白卡片

牛牛有n张卡片排成一个序列.每张卡片一面是黑色的,另一面是白色的。初始状态的时候有些卡片是黑色朝上,有些卡片是白色朝上。牛牛现在想要把一些卡片翻过来,得到一种交替排列的形式,即每对相邻卡片的颜色都是不一样的。牛牛想知道最少需要翻转多少张卡片可以变成交替排列的形式。 输入描述: 输入包括一个字符串S,字符串长度length(3 ≤ length ≤ 50),其中只包含’W’和’B’两种字符串,分...
阅读(353) 评论(0)

庆祝61

牛家庄幼儿园为庆祝61儿童节举办庆祝活动,庆祝活动中有一个节目是小朋友们围成一个圆圈跳舞。牛老师挑选出n个小朋友参与跳舞节目,已知每个小朋友的身高h_i。为了让舞蹈看起来和谐,牛老师需要让跳舞的圆圈队形中相邻小朋友的身高差的最大值最小,牛老师犯了难,希望你能帮帮他。 如样例所示: 当圆圈队伍按照100,98,103,105顺时针排列的时候最大身高差为5,其他排列不会得到更优的解 输入描述:...
阅读(421) 评论(0)

丑陋的字符串

牛牛喜欢字符串,但是他讨厌丑陋的字符串。对于牛牛来说,一个字符串的丑陋值是字符串中相同连续字符对的个数。比如字符串“ABABAABBB”的丑陋值是3,因为有一对”AA”和两对重叠的”BB”。现在给出一个字符串,字符串中包含字符’A’、’B’和’?’。牛牛现在可以把字符串中的问号改为’A’或者’B’。牛牛现在想让字符串的丑陋值最小,希望你能帮帮他。 输入描述: 输入包括一个字符串s,字符串长度l...
阅读(341) 评论(0)
321条 共17页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:111118次
    • 积分:4389
    • 等级:
    • 排名:第7565名
    • 原创:321篇
    • 转载:0篇
    • 译文:0篇
    • 评论:71条
    博客专栏
    最新评论