自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 二叉树------二叉搜索树的后序遍历序列

题目描述: 给定一个序列,判定其是否为一个二叉搜索树的后序遍历序列。 分析: 二叉搜索树的要求是:左子树中的节点都比根节点小,右子树的节点都比根节点大。则,其后序遍历的结果满足要求:根节点是序列的最后一个元素;从左开始找到第一个比它大的元素就是右子树的开始,且有从此元素到倒数第二个元素都比它大。递归的使用此方法对所有字数进行判断,就可得到最终结果。#include <iostream>usi

2016-05-31 10:20:23 321

原创 二叉树------层序遍历

题目描述: 给定一棵二叉树,要求从上到下按层输出。(每一层按从左到右的顺序) 思路: 按照按层创建二叉树的方法,使用一个队列。先将根节点入队,然后每次从队中取出队首元素,并将其左右子节点入队,持续此过程知道队列为空。(NULL不入队)#include <iostream>#include <deque>#include <stdio.h>using namespace std;#def

2016-05-31 09:52:11 240

原创 栈------包含min函数的栈

题目描述: 实现一个栈数据结构,要求包含min()函数(返回当前栈中的最小元素,复杂度O(1)),同时还要有Push,Pop,Top函数且复杂度都是O(1)。 分析: 要实现min()函数,首先想到可以使用一个指针指向栈中最小元素,但是每当弹栈一次进行一次,最小值就有可能发生变化,倘若当前最小被弹出,那就需要找到次小值,此时使用一个指针的思路是不可行的。于是,可以使用一个辅助栈来记录最小元素,

2016-05-28 17:33:57 260

原创 栈------栈的压入和弹出序列

题目描述: 给定两个序列s1和s2,问是否有可能通过对s1进行入栈出栈操作得到s2?(s1中每个元素都不同)。 思路: 若弹出数字刚好是栈顶元素,则直接弹出。若要弹出的数字不在栈顶,那就继续将源序列压入栈中直到它在栈顶位置。若源序列都被压入了栈中,但仍为得到要弹出的数字,则证明s2不可能是s1的一个弹出序列。#include <iostream>#include <stack>using

2016-05-28 16:38:19 382

原创 二叉树------树的子结构

题目描述: 给定两棵二叉树tree1与tree2,现在要求判断tree2是否为tree1的一个子树. 分析: 可以使用递归的方法,找到与tree2根节点值相同的tree1的节点n,然后递归调用函数对以n为根节点的子树进行判定。#include <iostream>#include <stdio.h>using namespace std;#define N 100struct Node

2016-05-26 16:50:00 323

原创 字符串------打印1到最大的n位数

题目描述: 输入位数n,要求打印出从1到最大的n位数。举例来说,若输入3,则打印1到 999 . 思路: 首先,不能简单的使用int 或者 long 等类型来完成此题,因为要考虑大数问题,所以需要使用字符串来模拟。方法是使用一个长为 n+1 的数组number[n+1]来实现,初始时把前n位的值置为 ‘0’ ,最后一位为 ‘\0’ ,然后每次取出第 n-1 位的字符(从0开始),将其转换为整数

2016-05-21 15:01:52 287

原创 位运算------二进制中1的个数

题目描述: 给定一个十进制数n,求它的二进制表示是有几个1. 方法: 可以每次将 n 和 n -1 进行 & 运算并将结果赋予 n,并记录运算次数。直到 n = 0 为止。include <iostream>using namespace std;int numOfOne(int n);int main(){ int array[3] = {258, 369, 147}; f

2016-05-20 11:41:15 360

原创 数组------荷兰国旗问题(颜色排序)

问题描述: 现在有红、白、蓝三色小球若干个,要求对其进行整理,使得同色小球相邻。 思路: 参照快速排序的过程,但使用三个指针first, current 和 end.其中first和current从数组头开始,end指向数组尾。以0表示红色,1表示白色,2表示蓝色。则有: (1) 当*current = 0 时,swap(*current, *first) 并且first++、current

2016-05-17 14:22:14 439

原创 数组------奇数偶数排序

题目描述: 给定一个int型数组,要求将数组排序使得奇数都在偶数前面。 分析: 在快速排序过程中,有一个步骤是:选定枢轴元素,并使得枢轴元素前面的元素都小于它而后面的元素都大于它。我们可以比照此方法来实现题目要求,此时时间复杂强度仅为O(n)。 实现1: 使用两个指针一头一尾向中间扫描。#include <iostream>using namespace std;bool isOddNu

2016-05-17 10:28:42 723

原创 数组------找零问题

题目描述: 现有面值为1, 2, 5, 10的零钱,问把100元兑换成零钱有多少种方法. 分析: 使用递归的方式,考虑有用m种面值(d[m])兑换n元,则对于每种面值都有两种方式,即换或者不换,则有 f(n, m) = f(n, m - 1) + f(n - d[m - 1], m)—>(不兑换当前面值和兑换当前面值).#include <iostream>using namespace

2016-05-16 11:21:27 394

原创 数组------和为定值的多个数

题目描述; 给定两个整数sum和n,要求在1, 2, 3, …, n中找到所有和为sum的组合. eg: sum = 6, n = 6 1 2 3 4 5 6 输出: 6 5 + 1 4 + 2 3 + 2 + 1 分析: 使用递归的方式考虑,原问题可以分割为在你1, 2 , … , n -1中找和为sum - n的问题(sumOfNumbe

2016-05-14 10:43:09 1361

原创 数组------寻找和为定值的两个数

题目描述: 给定一个数组和一个整数,要求在数组中找到两个数,使得它们的和为这个整数. 方法:排序夹逼 首先使用快速排序算法把数组按升序排列,然后使用夹逼的方法找到答案.即使用两个指针分别指向数组的头和尾(begin, end). 1. 若arr[begin] + arr[end] == sum 就输出; 2. 若arr[begin] + arr[end] 3. 若arr[

2016-05-11 14:24:02 402

原创 字符串处理------最长回文子串

题目描述: 给定一个字符串,求它的最长回文子串的长度.方法一:中心扩展法. 由于回文串中,以某个字符为中心的前缀和后缀一定是相同字符。可以利用此方法枚举中心位置,然后进行扩展,从而找到最长回文子串。#include <iostream>#include <string>using namepace std;int longestPalindrome(string &str, int len)

2016-05-11 11:15:08 300

原创 字符串处理------回文判断

题目描述: 1.给定一个字符串,判断其是否为回文串. 2.判断一个单链表是否回文.对于字符串,可以从两头想中间扫描,在扫描过程中如果头和尾的字符始终相同,则该字符串是回文串.#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>using namespace std;bool isPalind

2016-05-04 11:48:01 349 1

原创 字符串处理------全排列

题目描述为: 输入一个字符串,请输出这个字符串的所有排列. 思路: 可以使用递归的方法,每次选定一个字符固定在首位,然后让其它的字符做全排列.#include <iostream>#include <string>void funcCalcAll(string &str, int from, int to);int main(){ string str; cout <

2016-05-03 17:24:55 336

原创 字符串处理------字符串转整数

四. 字符串转为整数 题目描述: 输入数字字符,输出数字(写一个自己的atoi). 关键: 一个字符减去’0’就转化为整型.使用一个循环把字符串中的内个字符都转换为整型再放到相应的位上,就可以解决问题.//原始版本#include <iostream>#include <stdio.h>using namespace std;static const int LEN =

2016-05-03 17:13:32 531

Linux内核设计与实现_第三版_高清

Linux内核设计与实现_第三版_高清.

2015-10-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除