File
//Sap xep day tang dan
void swap(Position a, Position b, List *L){
     ElementType temp;
     temp=L->Elements[a-1];
     L->Elements[a-1]=L->Elements[b-1];
     L->Elements[b-1]=temp;
}
void Sort_List(List *L){
     Position P=FirstList(*L);
     while (P!=EndList(*L)){
           Position Q=Next(P,*L);
           while (Q!=EndList(*L)){
                 if (Retrieve(P,*L)>Retrieve(Q,*L))
                    swap(P,Q,L);
                 Q=Next(Q,*L);
                 }
           P=Next(P,*L);
     }
}
//Tim so lon nhat – So nho nhat
ElementType SLN(List L) {
     Position P=FirstList(L);
     ElementType Max=Retrieve(P,L);
     while (P!=EndList(L)){
           if (Retrieve(P,L)>Max)
           Max=Retrieve(P,L);
           else P=Next(P,L);
           }
           return Max;
}
ElementType SNN(List L) {
     Position P=FirstList(L);
     ElementType Min=Retrieve(P,L);
     while (P!=EndList(L)){
           if (Retrieve(P,L)<Min)
           Min=Retrieve(P,L);
           else P=Next(P,L);
           }
           return Min;
}
//Them phan tu vao danh sach co thu tu
Position OrderLocate(ElementType X, List L){
         Position P;
         int found = 0;
         P = FirstList(L);
         while ((P!=EndList(L)) && (Retrieve(P,L)<X) && (found==0)){
               if (Retrieve(P,L)==X) {
                  found=1;
                  break;
               }
               else P = Next(P,L);
         }
               return P;
}
void Insert_OrderList(ElementType X, List *L){
     Position P = OrderLocate(X,*L);
     Insert_List(X,P,L);
}
//Dem phan tu X trong danh sach co thu tu 
int Quantity_X_Order(ElementType X, List L){
    int cnt=0;
    ElementType temp;
    Position P=OrderLocate(X,L);
    if (P!=EndList(L)){
       while (Retrieve(P,L)==X){
             P=Next(P,L);
             ++cnt;
       }
    }
    return cnt;
}