笔试面试题—软件测试工程师面试秘籍(6)

发表于:2014-11-14 11:54

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:G.li    来源:51Testing软件测试网原创

  试题1.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素,需要从后往前依次后移几个元素?删除第i个元素时,需要从前向后前移几个元素?
  分析:考察线性表中顺序存储的特点。
  答案:n-i+1,n-i
  试题2.已知链表的头结点head,写一个函数把这个链表逆序。
  分析:考察线性表中链式存储反转算法。
  答案:
  01.    void List::reverse()
  02.    {
  03.         list_node * p = head;
  04.         list_node * q = p->next;
  05.         list_node * r = NULL;
  06.         while(q){;
  07.                  r = q->next;
  08.                  q->next = p;
  09.                  p = q;
  10.                  q = r;
  11.         }
  12.         head->next   = NULL;
  13.         head = p;
  14.    }
  试题3.找出单向链表中的中间结点。
  分析:两个指针,一个步长为1,另一个步长为2。步长为2的走到底后步长为1的正好到中间。
  答案:
  01.    list_node * List::middleElement()
  02.    {
  03.           list_node * p = head;
  04.           list_node * q = head->next;
  05.           while(q){;
  06.                   p = p->next;
  07.                   if(q)q=q->next;
  08.                   if(q)q=q->next;
  09.           }
  10.    }
  试题4.如何检查一个单向链表上是否有环。
  分析:同样两个指针,一个步长为1,另一个步长为2,如果两个指针能相遇则有环。
  答案:
  01.    list_node  *  List::getJoinPointer()
  02.    {
  03.
  04.          if(head == NULL || head->next == NULL)return NULL;
  05.          list_node * one = head;
  06.          list_node * two = head->next;
  07.          while(one  != two){
  08.                one = one->next;
  09.                if(two)two=two->next;
  10.                else break;
  11.                if(two)two=two->next;
  12.                else break;
  13.          };
  14.          if(one == NULL || two == NULL)return NULL;
  15.          return one;
  16.    }
本文选自《软件测试工程师面试秘籍》,本站经作者的授权。
版权声明:51Testing软件测试网获作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
41/41234>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • zaza9084
    2014-11-20 17:08:59

    这是《软件测试工程师面试秘籍》书中某一个章节的节选~不是所有的部分,可能给你们造成了困惑,不好意思~

  • huipeng
    2014-11-17 14:30:36

    开玩笑,这是开发的题

  • 幸福的木子端
    2014-11-17 10:33:34

    你是来当逗b的么 同学

  • 威武大将军朱寿
    2014-11-14 14:13:24

    这是软件测试工程师面试题?这是C的,您别逗了

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号