刚学数据结构,不懂这种题的思路和应该怎么多,希望可以一步步注释详细解答(语言-c语言)

在以下基础上完成以下 4 个函数定义并调用:
1、void prtPass(SeqList *lp); //输出顺序表中及格元素
2、double countPassAvg(SeqList *lp); //求顺序表中及格元素的平均值
3、void reverse (SeqList *lp); //将顺序表 lp 就地倒置,即借助于O(1)的辅助空间
4、void delemm(SeqList *Lp, int a);//删除所有 值大于 a 的元素
5、void insertX(SeqList *lp,DataType x); //顺序表中元素递增有序,将x插入,并保持递增

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef int ElemType; /*定义线性表的数据类型,假设为int型*/
typedef struct
{
    ElemType elem[MAXSIZE]; /*存放数据元素的数组*/
    int last;               /*线性表的长度*/
}SeqList;

void reverse (SeqList *lp);//实现顺序表逆置的功能
int getMin(SeqList *lp);//求顺序表中最小值元素的下标
int countPass(SeqList *lp);//统计及格元素的个数
double countPassAvg(SeqList *lp);//求顺序表中及格元素的平均值
void sort(SeqList *lp);
void delemm(SeqList *lp,ElemType a,ElemType b);//删除顺序表中[a,b]之间的元素
void insertX(SeqList *lp,ElemType x);//顺序表的有序插入
void split(SeqList *lp,SeqList *L1,SeqList *L2);//顺序表拆分为奇数表L1和偶数表L2
void prtList(SeqList *lp);

int main()
{
    SeqList L,*PtrL;
    int i;
    PtrL=&L;
    PtrL->last = 10;
    for (i=0; i<PtrL->last; i++)
        PtrL->elem[i] = rand()%100;
    prtList(PtrL);

    return 0;
}

void prtList(SeqList *lp)
{
    int i;
    for (i=0; i<lp->last; i++)
        printf("%d ",lp->elem[i]);
    printf("\n");
}

void reverse (SeqList  *lp)
{
}




哪个函数不会写啊,网上有很多链表现成代码可以参考