上一页 1 ··· 3 4 5 6 7 8 下一页

2016年6月27日

包含min函数的栈

摘要: 题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。 分析:除了题目要求的栈之外新开一个栈,用来记录最小值,每当在原栈中push数据后,与最小值栈中的栈顶元素比较,如果新值较小,则在最小值栈中push新值;否则再次push 阅读全文

posted @ 2016-06-27 10:43 三颗心 阅读(353) 评论(0) 推荐(0) 编辑

2016年6月26日

顺时针打印矩阵

摘要: 题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如输入以下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字 1、2、3、4、8、12、16、15、14、13、9、5、6、7、11、10 阅读全文

posted @ 2016-06-26 18:40 三颗心 阅读(510) 评论(0) 推荐(0) 编辑

2016年6月25日

二叉树镜像

摘要: 题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。 二叉树结点的定义如下: 1.递归实现 2.循环实现 阅读全文

posted @ 2016-06-25 22:36 三颗心 阅读(341) 评论(0) 推荐(0) 编辑

数的子结构

摘要: 题目:输入两棵二叉树A和B,判断B是不是A的子结构。 二叉树结点的定义如下: 分析:采用递归,先找到值相同的结点,再判断是否相同。 阅读全文

posted @ 2016-06-25 21:37 三颗心 阅读(414) 评论(0) 推荐(0) 编辑

合并两个排序的链表

摘要: 题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。 方法一:递归 : 要注意递归结束的条件及代码的鲁棒性 方法二:非递归。需要较多的指针 阅读全文

posted @ 2016-06-25 19:34 三颗心 阅读(4092) 评论(0) 推荐(0) 编辑

反转链表

摘要: 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 思路1:定义三个指针,分别指向当前遍历到的结点、它的前一个结点及后一个结点。 思路2:递归 阅读全文

posted @ 2016-06-25 16:07 三颗心 阅读(277) 评论(0) 推荐(0) 编辑

链表中倒数第K个结点

摘要: 题目:输入一个链表,输出该链表中倒数第K个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个结点是值为4的结点。 思路:设定两个指针p1和p2,两个指针刚开始都指向链表的第一个 阅读全文

posted @ 2016-06-25 14:41 三颗心 阅读(313) 评论(0) 推荐(0) 编辑

调整数组顺序使奇数位于偶数前面

摘要: 题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。 分析:如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有数字往前挪动一位。挪完之后在数组的末尾有一个 阅读全文

posted @ 2016-06-25 12:57 三颗心 阅读(471) 评论(0) 推荐(0) 编辑

2016年6月24日

在O(1)时间删除链表结点

摘要: 题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。 链表结点与函数的定义如下: 思路:我们可以很方便的得到要删除的结点的下一结点,如果我们把下一个结点的内容复制到需要删除的结点上覆盖原有的内容,再把下一个结点删除。就相当于把当前需要删除的结点给删除了。 实现代码如下: 阅读全文

posted @ 2016-06-24 22:47 三颗心 阅读(307) 评论(0) 推荐(0) 编辑

数值的整数次方

摘要: 题目:实现函数double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 这道题目有以下几点需要注意: 根据以上4个注意点,我们可以写出求指数的程序,代码如下: 阅读全文

posted @ 2016-06-24 21:20 三颗心 阅读(1099) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 下一页

导航