- 博客(17)
- 资源 (8)
- 收藏
- 关注
原创 链表排序
所谓链表排序,是指在排序过程中,需要进行值的交换时只需交换指针,改变链表的结构,而不是交换整个链表节点。首先,我们定义一个链表:typedef struct LINKNODE{ int data; /* 节点数据 */ struct LINKNODE *next; /* 指向下一个节点的指针 */}LNode;其次,我们需要创建链表的函数:
2013-03-16 12:12:12
102
原创 几何证明1
已知:在等腰三角形ABC中,BA = BC,M为边AB的中点,△BMC的外接圆交AC边上的高于K。设R为△ABC的外接圆半径。求证:BK = 3R / 2
2012-10-24 10:50:44
375
原创 求排序数组的元素的绝对值的最小值
题目:一个有序数组(从小到大排列),数组中的数据有正有负,求这个数组中的最小绝对值。思路:一个简单的思路,就是一次性遍历数组,求出数组的元素的绝对值的最小值,这样的时间复杂度为O(n)。但是,这样就浪费了题目的一个条件:数组是已经排好序的。所以,需要对原来的题目进行转换。考虑到数组有序,则元素绝对值的最小值为数组中最大负数的绝对值与最小非负数的绝对值的最小值。于是,题目事实上是去查找原数组中负
2012-10-04 18:43:48
1009
原创 动态规划与背包问题
一、动态规划的基本概念1.阶段:把一个问题的过程,恰当的分成若干个相互联系的阶段,以便于按一定的次序去求解。2.状态:表示当前阶段开始所处的自然状况,一个阶段一般有多个阶段。3.决策:当过程处于某个阶段的某一个状态时,可以做出不同的决定,从而确定下一个阶段的状态,而这个决定则是决策。4.状态转移方程:是确定一个状态到另一个状态的演变过程。设s为状态,u为决策,则状态转移方程可以表示
2012-10-04 01:42:59
421
原创 C语言面试题集
1.请说明typedef与#define的区别。(1)#define是在预处理阶段做简单的替换,而不做正确性检查。而typedef是在编译阶段处理的,仅仅是在作用域内给特定的类型一个别名。(2)typedef比#define更适用于处理指针,比如: typedef char *char_t; #define char_d char*
2012-10-03 10:32:55
678
原创 图的基础知识
1、图的种类简单图、多重图、伪图、有向图、有向多重图2、图的相关术语无向图的度:与顶点相关联的边的个数。度为0的顶点称为孤立的,度为1的顶点称为悬挂的。【非常重要】握手定理:设G(V,E)是一个含有e条边的无向图,则有: 推论:无向图的所有顶点的度数之和为偶数,且有偶数个奇数度顶点。有向图的入度和出度:对于有向图中的一
2012-09-17 10:42:32
403
原创 经典的各类排序总结
1. 插入排序实现源码:void InsertSort(int* arr, unsigned int len){ //前置条件判断 if (!arr || len <= 1) { return; } unsigned int i; unsigned int j; for (i = 1; i < len; i++) { j = i - 1; int x = a
2012-09-16 22:56:18
528
原创 频繁出现在IT面试中的组合计数问题
由于计算机与组合数学有着千丝万缕的联系,所以在很多大公司的笔试题目中,经常就会出现一些组合计数问题,现整理如下:1. 求5个节点的二叉树有多少中形态?该问题最直接的做法是穷举出所有的可能情况,毕竟只有5个节点。当然还可以利用递推式进行求解。假设n个节点的二叉树的形态有f(n)种,则f(0) = f(1) = 1。当n > 1时,一个二叉树有一个根节点和(n-1)个非根节点,在这(n-1
2012-09-16 19:38:42
853
原创 【链表篇】链表面试题集
1. 给定单链表,检测是否有环。如果有环,则求出进入环的第一个节点。 判断单向链表是否有环,可以采用快指针与慢指针的方式来解决。即定义一个快指针fast和一个慢指针slow,使得fast每次跳跃两个节点,slow每次跳跃一个节点。如果链表没有环的话,则slow与fast永远不会相遇(这里链表至少有两个节点);如果有环,则fast与slow将会在环中相遇。判断出链表有环以后,则需
2012-09-16 14:32:29
2589
原创 几何的对称之美——筝形定理
筝形定理:A 、C是线段BD的垂直平分线上面的两点,AC与BD相交于O,过O点做任意两条直线交四边形ABCD于P、F、Q、E,PF交BD于M,EQ交BD于N,则MO = NO。证明思路:作E关于AC的对称点E1,作Q关于AC的对称点Q1,则由对称性E1在AB上,Q1在BC上,只要证明E1、M、Q1三点共线即可。证明三点共线,可以考虑∠E1MQ1为平角,亦可以采用梅式定理转换成比例式的计算。
2012-09-15 20:38:33
2936
原创 几何的对称之美——风筝定理
风筝定理:A 、C是线段BD的垂直平分线上面的两点,AC与BD相交于O,过O点做任意两条直线交四边形ABCD于P、F、Q、E,PF交BD于M,EQ交BD于N,则MO = NO。证明思路:作E关于AC的对称点E1,作Q关于AC的对称点Q1,则由对称性E1在AB上,Q1在BC上,只要证明E1、M、Q1三点共线即可。证明三点共线,可以考虑∠E1MQ1为平角,亦可以采用梅式定理
2012-09-15 20:02:21
2326
原创 【链表篇】单向链表的基础知识
1. 存储方式typedef struct LINKNODE{ DataType data; //节点的值 struct LINKNODE* next; //指向下一个节点的指针}LNode;2. 基本操作(1)链表的创建 在创建链表时,有两种实现方式:第一种,每创建一个新
2012-09-15 19:18:40
386
原创 关于蝴蝶定理的证明
蝴蝶定理:圆O中的弦PQ的中点M,过点M任作两弦AB,CD,弦AD与BC分别交PQ于X,Y,则M为XY之中点证明:在弧AE上取一点C1,使得∠XC1M = ∠YCM,则∠XAM = ∠YCM = ∠XC1M,即A、C1、X、M四点共圆。 所以∠AXP = ∠AC1M,即弧AP + 弧DQ = 弧AD1 = 弧AP + 弧PD1 所以弧DQ =
2012-09-15 17:55:37
924
原创 关于蝴蝶定理的证明
蝴蝶定理:圆O中的弦PQ的中点M,过点M任作两弦AB,CD,弦AD与BC分别交PQ于X,Y,则M为XY之中点证明:在弧AE上取一点C1,使得∠XC1M = ∠YCM,则∠XAM = ∠YCM = ∠XC1M,即A、C1、X、M四点共圆。 所以∠AXP = ∠
2012-09-15 17:28:32
388
计算机网络:自顶向下课后答案(中文版+英文版)
2011-04-22
计算机游戏编程基础[何坤、周激流、张卫华]
2011-04-19
OpenGL编程教程
2011-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人