`

往年EMC编程题答案

 
阅读更多

1 Write a function to find the Kth node form the last node of a singly-linked list, and analze the time and space complexity of your funciton.
The input to the function is a pointer or reference to the head of the list.
The output is a pointer or reference to the Kth node from the last node.

 

用两个指针p,   q同时指向第一个节点,   q先向前走n步,   然后p,   q同时前进,   当q走到最后一个节点时,   p即指向倒数第n个.


typedef   struct
{
        int   i;
        Node   *next;
}Node;

Node   *test(Node   *t,int   n)
{

        Node   *p,   *q;

        p   =   t;
        q   =   t;

        while(n--   >   0)   //没有考虑接点个数小于n的情况  
                q   =   q-> next;

        while(q   !=   NULL)
        {
                p   =   p-> next;
                q   =   q-> next;
        }

        return   p;
}

 

2

写一个函数找出一个整数数组中,第二大的数
#include <stdio.h>

const int MINNUMBER = -32767

int find_sec_max(int data[], int count)
{
     int maxnumber = data[0];
     int sec_max = MINNUMBER;
     int i = 0;
     
      for(i = 1; i < count; i++){
             if(data[i] > maxnuber){
                    sec_max = maxnumber;
                    maxnumber = data[i]:
             }
             else if(data[i] > sec_max){
                     sec_max = data[i];
              }
        }
        return sec_max;
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics