05 2015 档案

摘要:思路:采用递归的思想。对于根节点,若其左子树或右子树不为空(为空返回),则互换左、右子树,然后对于左、右子树,分别递归上述处理方法,直至叶节点。实现代码如下:#includeusing namespace std;struct treenode{ char data; treenode ... 阅读全文
posted @ 2015-05-30 18:31 runninglzw 阅读(138) 评论(0) 推荐(0)
摘要:题目:输入两棵二叉树A和B,判断B是不是A的子结构。思路:首先判断A树的头结点是否等于B的头结点:如果相等的话则继续递归判断这两个子节点是否都相同,如果指向B的指针为NULL则返回true,其他情况都返回false(A为NULL,A->data!=B->data)如果不等的话则继续递归它的左右子树直... 阅读全文
posted @ 2015-05-28 21:26 runninglzw 阅读(354) 评论(0) 推荐(0)
摘要:题目:已知两个链表head1和head2各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)循环实现:1.重新申请一个头结点,使用指针p指向他,每新加一个结点,就将指针p后移一位,即指针p永远指向新链表的尾结点2.由于所用链表第一个结点不赋值,因此指针需要开始从头结点的下一个结点... 阅读全文
posted @ 2015-05-27 22:25 runninglzw 阅读(8178) 评论(0) 推荐(0)
摘要:题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。思路:假设有链表A->B->C->D->E->F->G。在反转链表过程中的某一阶段,其链表指针指向为:AF->G。也就是说在结点D之前的所有结点都已经反转,而结点D后面的结点E开始的所有结点都没有反转。这样D跟E之间存在了... 阅读全文
posted @ 2015-05-26 11:54 runninglzw 阅读(215) 评论(0) 推荐(0)
摘要:题目:输入一个单向链表,输出该链表中倒数第k个结点。最后一个结点为倒数第一个结点。思路:1.首先遍历链表的长度获得链表的length,则它的倒数第k个结点就是正数length-k+1个结点,但这需要遍历链表两次2.使用两个指针可以实现遍历一次,first指针指向头结点,second指针指向first... 阅读全文
posted @ 2015-05-25 15:23 runninglzw 阅读(604) 评论(0) 推荐(0)
摘要:题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分思路:声明两个指针,一个指向该数组的头,另一个指向该数组的尾,将头指针指向的第一个偶数和尾指针指向的第一个奇数交换即可,直到头指针大于尾指针跳出循环。代码如下:void t... 阅读全文
posted @ 2015-05-22 15:48 runninglzw 阅读(587) 评论(0) 推荐(0)
摘要:题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。思路:要删除一个结点,常规的办法就是让他的前面一个结点的next值指向他的下一个结点,但是要获得它的前一个结点时间复杂度为O(n);可以转换一下思维,先将它的下一个结点的值赋给要删除的结点,然后删除它的下一个结点就行了;... 阅读全文
posted @ 2015-05-20 21:07 runninglzw 阅读(187) 评论(0) 推荐(0)
摘要:上一篇博客是用循环实现的,代码比较繁琐,下面用递归实现:具体思路:由于n位数每一位都是由0到9组成的,所以通过全排列可以实现打印所有的数,printnumber函数:判断递归是否到达最后一位,是则说明最后一位已经被赋值,打印number即可,否则继续递归赋值给下一位(从0到9开始)具体代码如下://... 阅读全文
posted @ 2015-05-17 15:03 runninglzw 阅读(2050) 评论(0) 推荐(0)
摘要:题目:输入数字n,按顺序打印出1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。在不考虑大数的情况下,直接循环打印直到最大的数。在考虑大数的情况下:1.开辟n+1个空间的char型数组来保存数字,最后一位赋值为‘\0’,并且数字最高位对应数组的0下标;2.构建函数bo... 阅读全文
posted @ 2015-05-15 19:57 runninglzw 阅读(349) 评论(0) 推荐(0)
摘要:题目:实现函数double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。注意问题:1.判断参数:0的0次方非法,0的负数次方非法;2.当底数不为零,指数为正数时:循环相乘;3.当底数不为0,指数为负数时:先... 阅读全文
posted @ 2015-05-13 15:02 runninglzw 阅读(295) 评论(0) 推荐(0)
摘要:下面有三中方法可以实现:1.可以判断该二进制数的最后一位是否为1,然后右移一位再进行判断,不过当数字为负数时,右移时左边补1,会陷入死循环,最好使用左移。2.使用左移,将要判断的整数与1进行与运算,判断最后一位是否为1,再将1左移一位,变为10,在进行与运算,判断第二位是否为1,这样循环32次就可以... 阅读全文
posted @ 2015-05-12 15:28 runninglzw 阅读(2697) 评论(0) 推荐(0)
摘要:题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增的排序的数组的一个旋转,输出旋转数组的最小元素。例如输入{1,2,3,4,5}的一个旋转为{3,4,5,1,2},该数组的最小值为1。算法思路:1.旋转数组的特点就是一个数组为两个有序的数组,这里以升序为例2.将数组... 阅读全文
posted @ 2015-05-09 21:24 runninglzw 阅读(177) 评论(0) 推荐(0)
摘要:题目:输入一组员工的年龄,是o(n)的时间复杂度将他们排序思路:1.采用以空间效率换时间效率的思想,新建一个长度为100的数组countage来保存0-100岁员工年龄出现的次数2.遍历countage将年龄赋值ages数组,年龄出现几次就赋值几次,例如:countage[18]=3时,代表18岁的... 阅读全文
posted @ 2015-05-08 18:07 runninglzw 阅读(1055) 评论(0) 推荐(0)
摘要:思路:假设两个栈分别为s1,s2,实现进队列:进队列push到s1即可实现出队列:首先判断s2中是否含有数据,如果有则pop即可,否则需要把s1中的数据逐个出栈,然后进入s2栈,pop s2栈即可(基本思想是一个栈负责进栈,另一个栈负责出栈)代码如下:#include#includeusing na... 阅读全文
posted @ 2015-05-07 21:26 runninglzw 阅读(110) 评论(0) 推荐(0)
摘要:题目:根据先序遍历和中序遍历重新还原出二叉树思路:1.找到先序第一个数字并赋值给根节点root->data;2.在中序序列中找到先序的第一个数字;3.中序左边的序列为根节点root的左子树(左递归),右边的序列为root的右子树(右递归)。代码如下:#includeusing namespace s... 阅读全文
posted @ 2015-05-06 20:16 runninglzw 阅读(169) 评论(0) 推荐(0)
摘要:题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。1.结构体的定义,构建链表以及链表数据的输出struct listnode{ int data; listnode *next;};//使用尾插法构建链表listnode *init(){ listnode *head=... 阅读全文
posted @ 2015-05-05 21:11 runninglzw 阅读(152) 评论(0) 推荐(0)
摘要:题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。解题思路:以时间效率优先的话,可以分为两种处理办法,一种利用辅助内存,即新开辟一个数组,时间复杂度为O(n)另一种不用辅助内存,即在原数组上操作:1.先遍... 阅读全文
posted @ 2015-05-04 21:25 runninglzw 阅读(389) 评论(0) 推荐(0)
摘要:1.==运算符对于值类型:==运算符比较的是两个操作数的值是否相等,值相等返回true,否则返回false对于引用类型:==运算符比较的是两个引用对象是否指向同一个对象,下面看一个具体的栗子:#include#include<iostreausing namespace stdint m{strin... 阅读全文
posted @ 2015-05-02 19:43 runninglzw 阅读(216) 评论(0) 推荐(0)
摘要:题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。算法思路:1.拿数组中最右边的数和要找的数进行比较,如果右边数较大,可以不考虑最右边的一列,如果右边数较小,可以不考虑最上边的一... 阅读全文
posted @ 2015-05-01 17:09 runninglzw 阅读(206) 评论(0) 推荐(0)