04 2016 档案
摘要:今天实现的这个服务器程序加入了对多个客户端同时请求处理的实现,服务器端通过对每次监听到的客户端程序新建一个子进程,进行相关的处理,将从客户端传来的字符串数据,转化为大写的字符串序列,然重新写回到connfd;另一方面,客户端通过在标准输入里获取客户输入到的字符串序列,传送到connfd,再从conn
阅读全文
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define SERVER_PORT 8000 9 int main() 10 { 11 struct sockaddr_in serveraddr,clientaddr; 12 //1,so...
阅读全文
摘要:题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像
阅读全文
摘要:题目:输入俩个递增排序的链表,合并这两个链表,使合并后的链表任然是有序的。 struct ListNode{ int value; ListNode* next; }; 利用递归实现的代码如下:
阅读全文
摘要:题目:给定单项链表的头指针和一个结点指针,定义一个函数在o(1)的时间删除该结点,链表的定义如下: struct ListNode{ int value; ListNode* next; }; 函数定义:void DeleteNode(ListNode** PListHead,ListNode* p
阅读全文
摘要:分为两部分的问题,最好只用两个指针。 譬如此题:就可以一个指针从头往后扫,而另一个指针从后往前扫,保证第一个指针永远指向奇数,最后一个指针永远指向偶数,然后两者交换,直至最终两个指针相等,即扫描完了所有的元素。 代码如下所示: 代码的鲁棒性:
阅读全文
摘要:题目:定义一个函数,输入一个链表的头节点,反转该链表并返回反转后链表的头节点,链表的定义如下: struct ListNode{ int value; ListNode* next; }; 链表反转的过程中要防止链表的断裂,假设每次都必须保存当前扫描节点的上一个结点,和下一个节点,不停的扫描此节点是
阅读全文
摘要:实现函数:double Power(double base ,int exponent),求base的exponent次方,不得使用库函数,同时不需要考虑大数问题。 c语言中有一个pow函数可以求得数的乘方。 基本实现: 考虑不全面的地方:1、exponent小于1(0或者负数怎么办?) 2、0的0
阅读全文
摘要:题目:请设计一个函数,要求输入一个整数,然后输出此整数的二进制形式中1的个数,譬如:输入9(1001),输出2。 本题考察二进制数的操作,共有五种操作,都是把十进制数转化为二进制数之后再进行的按位操作。 1、&操作:0&1=0、0&0=0、1&1=1、1&0=0;5&7=5 2、|操作:0|1=1、
阅读全文
摘要:关于递归和循环 1、通常基于递归的代码比基于循环的代码要简洁很多,更加容易实现,如果面试官没有特殊的要求,应聘者可以优先先采用递归的方法实现编程。 2、但是递归的缺点也很明显,递归时函数的调用自身,函数的调用是有时间和空间的消耗的,每次的函数调用都需要在内存栈中分配空间以用来保存参数,返回地址,临时
阅读全文
摘要:若是用直接查找的方法也就是一个一个比的方法(O(n)级别),虽然很容易解决,但显然根据旋转数组的规律,希望有更好时间效率的算法来解决。 显然旋转数组可以用二分查找的方法来实现,考虑上面的例子,旋转数组中的第一个数一定是大于最后一个数的,然后要找的最小的数一定是两个递增序列的分界线(此数的左边递增,右
阅读全文
摘要:题目:请实现一个排序算法,要求时间效率为O(n).(允许使用常量大小的辅助空间不得超过O(n)) 首先回顾一下自己实现了的几种常用的排序算法 一、插入排序: 二、快速排序 三、归并排序 四、堆排序 五、计数排序 对于上述问题的理解:就是要对员工按照年龄来进行排序,显然年龄是一个较小的范围可以让我们用
阅读全文
摘要:题目一:用两个栈实现队列,队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列的尾部插入节点和在队列的头部删除节点的功能。 template <class T> class CQueue { CQueue(); ~CQueue(); void appendTa
阅读全文
摘要:***************************FIRST PART***********************************date //date nowdate +%Y/%m/%d...%H:%M:%S //date cn timecal 10 2009cal //todayb
阅读全文
摘要:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序序列和中序序列的结果都不含重复的数字,例如输入前序序列{1,2,4,7,3,5,6,8}和中序序列{4,7,2,1,5,3,8,6},则重建树并输出它的头结点,二叉树的头结点定义如下: struct BinaryTreeNode
阅读全文
摘要:输入一个链表的头结点,从尾到头反过来打印每个结点的值。 链表的节点定义如下: struct ListNode{ int value; ListNode* next; } 首先回顾一下链表的基本操作 链表的后插入: //注意,传入的参数是指向指针的指针,而不是ListNode* phead,因为代码中
阅读全文
摘要:此问题和替换空格问题几乎都可以用一个模式高效求解,即都采用从后往前的方法比较A1和A2的数字,然后把较大的数复制到A1合适的位置。防止采用从前往后的方法导致大量的重复移动。 具体思路:类似于merge_sort中的merge过程,首先可以得到合并后A1数组的实际长度(A1.length+A2.len
阅读全文
摘要:题目:请实现一个函数,把字符串中的每个空格替换成“%20”,例如输入“welcome to my world!”,则输出“welcome%20to&20my%20world”. 这个例子的应用主要用在网络编程中,如果URL参数中含有一些特殊字符譬如:空格,‘#’,可能导致服务器端无法获得正确的参数,
阅读全文
摘要:题目:在一个二维数组的中,每一行都按照从左到右的递增顺序排列,每一列都按照从上到下的递增序列排序,请设计一个函数,输入这样的一个二维数组和一个整数,查询在此二维数组中是否存在此整数。 example:在下列数组中 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 查询是否有7
阅读全文
摘要:求链表的倒数第K个节点:主要思路设置两个指针,刚开始都指向链表的第一个节点,第一个指针先走k-1步,然后两个一块走,直到第一个指针的下一位为nullptr,则第二个指针所指的位置就是倒数第k个节点。 在编程书上看见这个方法,自己画了个链表试了试果然是这样,但是这是个什么原理呢? 想了想是这样的耶。。
阅读全文

浙公网安备 33010602011771号