- 博客(15)
- 收藏
- 关注
原创 优先级队列
堆的实现--->优先级队列注:由于大堆与小堆的实现大同小异,只需要修改大于或小于号;所以为了代码复用,本人使用了模板参数及模板的模板参数模板的模板参数:为了引入仿函数即函数对象;此处不多介绍仿函数,它只是一个函数对象;一个类型;如下:类型GreaterCompare与类型LessCompare:他们的内部都只是重载了();templatestruct Great
2016-05-31 17:30:36 381
原创 旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1.
2016-05-24 23:18:49 262
原创 数值的整数次方
题目:实现函数double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。
2016-05-23 21:44:33 264
原创 在O(1)时间删除链表结点
题目:给定单向链表的头指针和一个结点的指针,定义一个函数在O(1)时间删除该结点。链表结点与函数的定义如下:代码如下:#include#include#includestruct ListNode{ int m_pValue; struct ListNode* m_pNext;}*head;//增加一个结点void addListTailNode(st
2016-05-16 19:45:37 239
原创 调整数组顺序使奇数位于偶数前面
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分分析如下图:代码如下:#includevoid Swap(int* x, int* y){ int tmp = *x; *x = *y; *y = tmp;}void oddtoeven(int* arr, int l
2016-05-13 21:33:26 271
原创 菲波那切数列
题目:写一个函数,输入n,求菲波那切数列(Fibonacci)的第n项菲波那切数列的定义如下:说明:除了第0项为0,第一项为1,第n项都为前俩项之和eg:01 2 3 4 56 7 8 9 1011 ...... 0 1 1 2 35 8 13 21 3455 89 ......代码如下:/
2016-05-13 14:54:44 866
原创 输入二叉树的前序遍历和中序遍历,重建出该二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设前序遍历与中序遍历的结果都不含重复的数字。eg:前序遍历:{1,2,4,7,3,5,6,8}; 中序遍历:{4,7,2,1,5,3,8,6};二叉树结点定义如下:struct BinaryTreeNode{int _value;BinaryTreeNode* _left;Bin
2016-05-11 18:46:32 645
原创 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请按成 一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请按成 一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数分析如下图(也是测试用例):上面例子:row = 4;col = 5;IsExitNum()函数:值num在arr[4][5]中是否存在;代码如下:#includ
2016-05-10 23:12:50 1797
原创 请实现一个函数,把字符串中的每个空格替换成“ ”
题目:替换空格---请实现一个函数,把字符串中的每个空格替换成“%20”例子:We are happy.\0替换后:We%20are%20happy.\0思路:从字符串的后面往前替换,这样字符移动的次数少,时间复杂度为:O(n);如下图1:1、首先得遍历字符串,计算字符串的真实长度,以及空格的个数;2、计算替换空格后的长度,2*空格个数+字符串真实长度3、当字符不等于' '
2016-05-09 23:03:50 1229
原创 链表的逆置
题目:输入一个链表的头节点,从头到尾反过来打印出每个节点的值Reverse()函数:输入头结点,可输出的确是从尾到头;即第一个输入的节点,最后一个输出;最后一个输入的结点,第一个输出;很典型的“后进先出“;用桟实现;1、将结点放进桟中,当结点全遍历一遍时,链表已经反过来,2、此时再从桟顶逐个输出结点的值Reverse2()函数:递归本质就是桟结构;则用_Reverse2(_
2016-05-09 21:21:08 1656
原创 实现CMyString类--深拷贝与浅拷贝
实现CMyString类,实现赋值运算符函数(深拷贝与浅拷贝)深拷贝:赋值运算符函数说明步骤1、释放原来的内存空间步骤2、再重新开辟要赋值的对象的大小的空间步骤3、再将另一个对象的值拷贝给this对象友元函数的说明:由于输出重载需要俩个参数,不能再隐含this指针,故使用友元函数代码如下:class CMyString{public:
2016-05-08 21:45:01 940
原创 两个桟实现一个队列
题目:俩个桟实现一个队列,请实现它的俩个函数appendTail/deleteHead算法思路:入队:将元素压入桟s1中;//appendTail出队:先判断s2中是否为空,如果不为空,直接弹出栈顶元素;否则,将s1中的元素逐个弹出并压入桟s2中,把最后一个元素弹出并出队;//deleteHead判断队列是否为空(empty()):判断s1/s2中都没有元素时,返回true
2016-05-06 21:05:10 670
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人