- 博客(10)
- 资源 (9)
- 收藏
- 关注
原创 合并两个排序的链表
合并两个排序的链表,如图: 已排序链表1和已排序链表2合并后的已排序链表3过程: (a)链表1的头结点的值小于链表2的头结点的值,因此链表1的头结点是合并后链表的头结点。 (b)在剩余的结点中,链表2的头结点的值小于链表1的头结点的值,因此链表2的头结点是剩余 结点的头结点,把这个结点和之前已经合并好的链表的尾结点链接起来。 递归方式#include <stdio.h>typedef st
2017-09-24 11:42:14 312
原创 反转链表
定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。反转链表因为单向链表,要保存当前结点的preNode和nextNode. 代码如下:C语言代码:typedef struct ListNode{ int valude; struct ListNode* next;}ListNode;ListNode* ReverseList(ListNode* listHe
2017-09-23 17:05:58 266
原创 链表中倒数第K个结点
求链表中倒数第k个结点思路:(a)第一个指针在链表上先走k-1步 (b)把第二个指针指向链表的头结点 (c) 两个指针一同沿着链表向前走。 当第一个指针指向链表的尾结点时,第二个指针指向倒数第k个结点如图: C代码typedef struct list_node{ int value; struct list_node *next;}list_node;list_node* f
2017-09-23 10:43:11 295
原创 Singleton模式C++
为什么需要singleton模式呢,因为有时候需要保证一个类仅有一个实例,并且提供一个访问它的全局访问点。 比如游戏里面只有一件的厉害的装备,比如屠龙刀,倚天剑只有一把。懒汉模式class Singleton{public: static Singleton* Instance();protected: Singleton(){}private: static Si
2017-09-22 16:44:45 296
原创 在网络通讯中,实现把一个int类型的值从服务器传输到另外一个电脑上
1.在网络通讯中,实现把一个int类型的值从服务器传输到另外一个电脑上,需要把一个int类型的变量放入到一个buffer中,和从buffer中取出一个int变量,要求buffer在不同平台之间通过网络传输,获取的int类型的数据是一样的,请写出来两种方法,一种为二进制的格式,另外一种为文本格式,要求:调用c的库函数实现;//aData为输入参数,aBuffer为输入参数,指向要写的内存int Wr
2017-09-20 22:54:05 2406
原创 删除链表结点O(1)时间
删除链表结点,根据结点的位置,和链表结点数量可分三种情况 1.删除非尾结点,链表的结点数量 >= 2 2.删除只有一个结点的链表,结点数量 == 1 3.删除尾结点,结点数量 >= 2 当然,上面这个3中情况都是已经确定要删除结点在链表中,这个我在delete_node函数内没有做处理,而是把这个问题抛给了delete_node函数的调用者,因为要保证O(1)时间完成删除结点,那么久必须这么
2017-09-17 11:52:37 425
原创 求幂函数
完整的题目: 实现函数double Power(double base, int exponent), 求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。C语言代码:#include <stdio.h>#include <stdbool.h>bool g_invalid_input = false;bool equal(double num1, double num2)
2017-09-16 12:40:36 1097
原创 统计一个整数的二进制中1的个数.
请实现一个函数,输入一个整数,输出该数的二进制表示中1的个数。 例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2.普通解法:int number_of_1(int n){ int count = 0; unsigned int flag = 1; while (flag){ if (n & flag) ++c
2017-09-07 22:48:51 1778 1
原创 斐波那契数列
斐波那契数列介绍斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N
2017-09-07 17:57:41 594
原创 旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1.那么如果查找旋转数组的最小数字呢,主要的思想就是二分查找法,即头尾同时查找。 例子查找过程如下: 代码如下:#include <stdio.h>int search_min_rotated
2017-09-01 16:40:23 251
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人