面试笔试常见题目
robbie1314
每天坚持学习至少一小时~~
展开
-
怎么判断链表中是否有环
<br /><br />思路就是弄两个指针,开始指向不同的链表不同的位置,然后1个指针移动间隔是1,一个指针移动间隔是2,如果快的能追上慢的,那说明就有环了。就如何两个人绕圈跑步,速度不一样,如果速度快的能追上慢的,那说明跑道是环型的。<br /> <br />bool CircleInList(Link* pHead)<br />{<br /> if (pHead = = NULL || pHead->next = = NULL)//无节点或只有一个节点并且无自环<br /> {<br />原创 2011-05-05 23:13:00 · 1215 阅读 · 2 评论 -
【链表】如何查找单链表的倒数第n个指针
<br /><br />算法一:第一次遍历到链表末尾,找到链表长度N;第二遍遍历,找到第N-n个节点。<br />算法二:设立两个指针,p1指向头节点,p2往前走n步,这样,p2与p1之间间隔n个指针。这样,当p2到达末尾是,p1则为倒数第N-n个节点。<br /> <br />Node *lastN(Node *head)<br />{<br /> Node *p1=head,*p2=head;<br /> for(int i=0;i<n;i++)<br /> {原创 2011-05-05 23:35:00 · 766 阅读 · 0 评论 -
C笔试题
<br /><br />1. 下面这段代码的输出是多少(在32位机上).<br /> char *p;<br /> char *q[20];<br /> char *m[20][20];<br /> int (*n)[10];<br /> struct MyStruct<br /> { <br /> char dda; <br /> double dda1; <br /> int type ;<br /> }; <br /> My原创 2011-05-06 01:47:00 · 1886 阅读 · 0 评论 -
斐波那契数列-递归实现
<br /><br />斐波那契数列:<br />设F(n)为该数列的第n项(n∈N+)。那么这句话可以写成如下形式:<br /><br /> F(0) = 0,F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3)<br />从第3项开始,每项都是前两项之和,显然这是一个线性递推数列。<br /> <br />具体此数列的介绍请参考:http://baike.baidu.com/view/816.htm<br /> <br />#include <stdio.h><br /> <br原创 2011-05-06 00:08:00 · 631 阅读 · 0 评论 -
二维数组和二级指针的传递问题
引自:http://www.wutianqi.com/?p=1822借道面试题引出问题,题目:char **p, a[16][8]; 问:p=a是否会导致程序在以后出现问题?为什么?可能有一部分朋友会回答正确,这里他们认为,a[]是一级指针,a[][]就是二级指针。那这个到底对不对呢?OK,用事实说话:1234567891011121314151617// Author: Tanky Woo// Blog: www.WuTianQi转载 2011-05-06 01:28:00 · 1000 阅读 · 0 评论 -
【链表】将一个链表反转
<br /><br />typedef struct linknode<br />{<br /> int data;<br /> struct linknode *next;<br />}node;<br /> <br />//将一个链表逆置<br />node *reverse(node *head)<br />{<br /><br /> if ( head == NULL || head->next == NULL )<br /> {<br /> return he原创 2011-05-05 23:22:00 · 597 阅读 · 0 评论