设为首页 加入收藏

TOP

微软的22道数据结构算法面试题(含答案)(三)
2012-03-10 10:13:35 来源: 作者:GwQ 【 】 浏览:3567
Tags:微软 数据结构 算法 试题 答案
 
  20、在双向链表中删除指定元素。   
    
    1void   del(List   head,   List   node){   
    2         List   pre=new   List();   
    3         pre.next   =   head;   
    4         List   cur   =   head;   
    5         while(cur   &&   cur!=node){   
    6                 cur=cur.next;   
    7                 pre=pre.next;   
    8         }   
    9         if(!cur)   return;   
  10         List   post   =   cur.next;   
  11         pre.next=cur.next;   
  12         post.last=cur.last;   
  13         return;   
  14}   
    
  21、不重复地输出升序数组中的元素。
   
    
    1       void     outputUnique(   char   []   str,   int     n)     {   
    2             if   (n   <=   0   )     return   ;   
    3           elseif(n   ==   1   )   putchar(str[   0   ]);   
    4               else         {   
    5                     int     i   =   0   ,j   =   1   ;   
    6                   putchar(str[   0   ]);   
    7                       while   (j   <   n)     {   
    8                               if   (str[j]   !==   str[i])     {   
    9                                   putchar(str[j]);   
  10                                   i   =   j;   
  11                           }     
  12                             ++   j;   
  13                   }     
  14           }     
  15   }     
    
    
  22、面试过程中我还遇到了下面几题:   
    
  1、如何删除链表的倒数第m的元素?我的方法是先用pre指针从链表头开始步进m,新建pst节点next指针指向头节点,cur指针指向头节点,然后pre,cur,post三个指针一起步进,当pre指向链表结尾的时候cur指向倒数第m个元素,最后利用pst指针删除cur指向元素。   
    
  2、如何判断一个字符串是对称的?如a,aa,aba。设置头尾指针同时向中间比较靠齐直至相遇。   
    
  3、如何利用2函数找出一个字符串中的所有对称子串?以子串头指针和尾指针为循环变量设置两个嵌套的循环以找出所有子串,对每个子串应用2函数。  

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2012网易C++笔试题解答 下一篇派生类构造函数和析构函数的执行..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: