面试
文章平均质量分 58
TinyFisher
这个作者很懒,什么都没留下…
展开
-
二分搜索递归与非递归C语言实现
据说90%的程序员都无法正确的写出二分搜索,试了下果然如此,需要注意的地方挺多,所以讲递归与非递归的写法记录下来,以便于复习int binary_search(int array[],int n,int key) //非递归{ int low=0; int high=n-1; while(low<=high) //请注意= { if原创 2013-05-17 11:00:51 · 1223 阅读 · 0 评论 -
双向链表操作大全C语言实现
双向链表的操作和单链表很像,主要包括创建,删除,插入;只要注意下指针的操作即可,废话不多说,直接上代码:typedef struct dnode{ int num; struct dnode *pre; struct dnode *next;}Dnode,*pDnode;pDnode Create() //用户输入创建,-1表示结束{ pDnode he原创 2013-05-30 15:53:15 · 774 阅读 · 0 评论 -
构造函数为何不能为虚函数
文章部分转自:http://blog.csdn.net/lmsnju/article/details/5386617构造函数不能声明为虚函数的原因是:解释一:所谓虚函数就是多态情况下只执行一个。而从继承的概念来讲,总是要先构造父类对象,然后才能是子类对象。如果构造函数设为虚函数,那么当你在构造父类的构造函数时就不得不显示的调用构造。还有一个原因就是为了防错,试想如果你在转载 2013-05-30 19:55:18 · 868 阅读 · 0 评论 -
2013微软暑期实习笔试错题、疑题整理
参加了微软“智在未来”暑期实习笔试,跪了,将错题、疑题整理如下,方便后面复习整理。2. What's the output of the following code?(3 Points)[cpp] view plaincopyclass A { public: virtual void f()原创 2013-05-28 10:13:53 · 915 阅读 · 0 评论 -
DP实例之01背包问题C语言实现
问题描述: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=m原创 2013-05-17 10:47:52 · 1888 阅读 · 0 评论 -
DP实例之最长公共子序列LCS
/* LCS:求最长公共子序列 例如:s1="abdrge",s2="adreg",则LCS="adre" 状态方程:lcs(i,j)=lcs(i-1,j-1)+1,其中s1[i]=s2[j] 或者 lcs(i,j)=max{lcs(i,j-1),lcs(i-1,j)}*/int LCS(char *a,char *b){ int len_a=strl原创 2013-06-13 11:18:34 · 923 阅读 · 0 评论 -
DP实例之最长上升子序列LIS
/* LIS:最长递增子序列,例如:23453267,最长递增子序列为:234567 lis(i)表示以a[i]结束的递增子序列的长度 lis(i)=max{lis(k)+1,1} k from 0 to i-1 最长递增子序列长度为max(lis[]);*/int LIS(int a[],int len){ int *p=(int *)mallo原创 2013-06-13 11:21:57 · 746 阅读 · 0 评论 -
关于回调函数
关于回调函数,搜集了一些网上的说法:1.形象的例子: 你饿了,想吃饭,就一会去问你妈一声"开饭没有啊?"这就正常函数调用. 但是今天你妈包饺子,花的时间比较长,你跑啊跑啊,就烦了.于是你给你妈说,我先出去玩会,开饭的时候打我手机.等过了一阵,你妈给你打电话说"开饭啦,快回来吃饭吧!" 其中,你告诉你妈打手机找你,就是个你把回调函数句柄保存到你妈的动作.你妈打电话叫原创 2013-06-09 10:21:39 · 789 阅读 · 0 评论 -
extern "C" 的用意
文章转自:http://blog.csdn.net/wujian53/article/details/706975前些天,编程序是用到了很久以前写的C程序,想把里面的函数利用起来,连接发现出现了找不到具体函数的错误:以下是假设旧的C程序库C的头文件/*-----------c.h--------------*/#ifndef _C_H_#define _C_H_转载 2013-06-04 16:21:42 · 581 阅读 · 0 评论 -
死锁
文章转自http://www.cnblogs.com/simonhaninmelbourne/archive/2012/11/24/2786215.html什么叫死锁?所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 那么为什么会产生死锁呢?1.因为系统资源不足。2.进程运行推进的顺序转载 2013-06-14 16:38:07 · 746 阅读 · 0 评论 -
客户端 用不用 bind 的区别
文章转自:http://blog.chinaunix.net/uid-23193900-id-3199173.html无连接的socket的客户端和服务端以及面向连接socket的服务端通过调用bind函数来配置本地信息。使用bind函数时,通过将my_addr.sin_port置为0,函数会自动为你选择一个未占用的端口来使用。 Bind()函数在成功被调用时返回0;出现错误时返转载 2013-06-17 17:26:36 · 758 阅读 · 0 评论 -
二叉树的创建、前/中/后序遍历、按层遍历C语言实现
二叉树的概念、性质等就不多介绍了,这里用C语言实现了二叉树的建立(1.用户输入,2.给数组参数),前中后序遍历和按层遍历。 1.二叉树的建立typedef struct BNode{ char value; //类型假设为char struct BNode *left; struct BNode *right;} Node,*pNode,*原创 2013-05-23 19:14:18 · 1726 阅读 · 0 评论 -
单链表操作大全C语言实现
单链表的操作一般包括:建立,删除节点,插入节点,链表反转1.单链表建立,包括从终端输入和由数组转换而来两种:typedef struct node{ int num; struct node * next;}Node,*pNode;pNode CreateLink(){ pNode head=(pNode)malloc(sizeof(Node));原创 2013-05-30 11:08:53 · 831 阅读 · 0 评论 -
归并排序C语言实现
void swap(int *a,int *b){ int temp=*a; *a=*b; *b=temp;}void merge_array(int a[],int low,int mid,int high,int result[]){ int i,j,k; i=low; j=mid+1; k=0; while(i<=mid原创 2013-05-17 10:55:06 · 788 阅读 · 0 评论 -
快速排序C语言实现
void swap(int *a,int *b){ int temp=*a; *a=*b; *b=temp;}int partition (int input[],int low,int high){ int position=low-1; int key=input[high]; while(low<high) { i原创 2013-05-16 10:52:07 · 712 阅读 · 0 评论 -
堆排序C语言实现
堆的概念这里不再描述,这里主要实现堆排序,堆排序主要分为两步:1.堆化数组(最小堆);2.交换首尾元素,(则最后一个元素为最小),调整前n-1个元素,使前n-1个元素仍为为最小堆,循环,直到还剩一个元素;这样排序下来,数组为倒序。代码如下:void swap(int *a,int *b){ int temp=*a; *a=*b; *b=temp;}v原创 2013-05-16 09:27:52 · 758 阅读 · 0 评论 -
冒泡排序C语言实现
即将找工作,打算将各个排序算法复习一遍,便于以后复习,代码均在codeblock下编译通过,重要的地方有注释提醒,第一篇:冒泡排序void swap(int *a,int *b){ int temp=*a; *a=*b; *b=temp;}void bubble_sort(int input[],int length){ int i,j,flag=原创 2013-05-15 19:39:14 · 859 阅读 · 0 评论 -
分段和分页内存管理
两者描述 打个比方,比如说你去听课,带了一个纸质笔记本做笔记。笔记本有100张纸,课程有语文、数学、英语三门,对于这个笔记本的使用,为了便于以后复习方便,你可以有两种选择。 第一种是,你从本子的第一张纸开始用,并且事先在本子上做划分:第2张到第30张纸记语文笔记,第31到60张纸记数学笔记,第61到100张纸记英语笔记,最后在第一张纸做个列表,记录着三门笔记各原创 2013-05-17 14:29:55 · 9132 阅读 · 3 评论 -
内存泄露终极分析
文章转自http://www.360doc.com/content/11/0302/18/5404234_97525468.shtml 内存泄漏是主内存分配了部分内存后而没有释放,逐渐耗尽内存资源,导致系统崩溃。它的后果甚至是会影响到以后内存的正常运行或使用内存损坏~~~ 它主要是指程序中间动态分配了内存,但是在程序结束时没有释放这部分内存,从而造成那一部分内存不可用的情况,重起转载 2013-05-23 10:07:54 · 1691 阅读 · 0 评论 -
获取二叉树的叶子数、高度以及左右子树的交换的C语言实现
二叉树的一些操作具有天然的递归性,本文实现了获取二叉树的叶子总数、获取二叉树高度以及交换二叉树的左右子树,代码均已编译通过。 1.获取二叉树叶子总数:左子树叶子总数+右子树叶子总数typedef struct BNode{ char value; //类型假设为char struct BNode *left; struct BNode *right原创 2013-05-25 15:58:47 · 2236 阅读 · 1 评论 -
根据二叉树的先序和中序遍历还原二叉树
#include#includetypedef struct node{ int value; struct node *left; struct node *right;}Node,*pNode;/* *根据二叉树的先序遍历和中序遍历,还原二叉树 *先序:1,2,4,7,3,5,6,8;中序:4,7,2,1,5,3,8,6*/pNode BuildTree(int p原创 2013-05-27 19:27:50 · 1452 阅读 · 0 评论 -
浮点数的二进制表示
文章转自:http://www.ruanyifeng.com/blog/2010/06/ieee_floating-point_representation.html1.前几天,我在读一本C语言教材,有一道例题: #include void main(void){ int num=9; /* num是整型变量,设为9 */转载 2013-05-28 15:29:57 · 708 阅读 · 0 评论 -
C++类中成员变量的初始化总结
文章转自:http://buptdtt.blog.51cto.com/2369962/7818301、普通的变量:一般不考虑啥效率的情况下 可以在构造函数中进行赋值。考虑一下效率的可以再构造函数的初始化列表中进行。class CA{public:int data;public:CA();};CA::CA():data(0)//……#1……初始化列表方式{/转载 2013-05-29 09:58:19 · 860 阅读 · 0 评论 -
浅谈GCC预编译头技术
文章转自:http://lych.yo2.cn/articles/%E6%B5%85%E8%B0%88gcc%E9%A2%84%E7%BC%96%E8%AF%91%E5%A4%B4%E6%8A%80%E6%9C%AF.html其实刚开始编程的时候,我是丝毫不重视编译速度之类的问题的,原因很简单,因为那时我用BASICA。后来一直用到C++ Builder,尽管Borland的广告无时无刻不在吹转载 2013-06-18 11:13:28 · 755 阅读 · 0 评论