几道面试题

来源:互联网 发布:126 ssl 端口 编辑:程序博客网 时间:2024/06/05 15:20

最近接到不少面试机会

在面试中问到技术的很少

不过问到的地方我都打得不好

下面把这些面试题

整理一下:

1 一次遍历把一个单向列表 逆序

刚开始第一次想到的算法比较笨

其实可以用三个指针来实现目的

pHead->next = NULL;
pNode p1 = pHead;
pNode p2 = p1->next;
pNpde p3 = p2->next;
while(p3)
{
    p2->next = p1;
    p1 = p2;
    p2 = p3;
    p3 = p3->next;
}
p2->next = p1;
pHead = p2;

2 在构造和析构里面哪个能用异常

 http://blog.csdn.net/memewry/article/details/7940168

3.1 more effective c++提出两点理由(析构函数不能抛出异常的理由):

1)如果析构函数抛出异常,则异常点之后的程序不会执行,如果析构函数在异常点之后执行了某些必要的动作比如释放某些资源,则这些动作不会执行,会造成诸如资源泄漏的问题。

2)通常异常发生时,c++的机制会调用已经构造对象的析构函数来释放资源,此时若析构函数本身也抛出异常,则前一个异常尚未处理,又有新的异常,会造成程序崩溃的问题。

经典的那几本c++还是需要精读。

二分查找

用两个栈实现一个queue


 

 

0 0
原创粉丝点击