用数组实现栈功能 alt

//比较大小所用的函数
int max(int* numList,int numSize){
    int temp=numList[0];
    for(int i=1;i<numSize;i++){
        if(temp<numList[i]){
            temp=numList[i];
        }
    }
    return temp;
}
//主函数
int* maxInWindows(int* num, int numLen, int size, int* returnSize ) {
    //初始化结果数组
    *returnSize=0;
    int* res=(int*)malloc(sizeof(int)*(numLen-size+1));
    //初始化一个队,用来不断存入数据
    int* queue;
    queue=(int*)malloc(sizeof(int)*numLen);
    int head=0,tail=0;
    //循环入队
    for(int i=0;i<=numLen;i++){
        //如果队头和队尾之间的数据个数达到要求
        if(tail-head==size){
            //找到此部分数据中最大的存入结果数组
            res[(*returnSize)++]=max(&num[head],size);
            //队头向后移一位
            head++;
        }
        //如果队头队尾之间数据不够
        if(tail-head<size){
        	//继续入队数据
            queue[tail++]=num[i];
        }
    }
    return res;
}