//#include //#include //using namespace std; //#define NHT 2015 // //struct Data //{ // int MaSP; // string TenSp; // int ChungLoai; // int NamSX, BH; //}; // //struct Node //{ // Data info; // Node *pNext, *pPrev; //}; // //struct List //{ // Node *pHead; // Node *pTail; //}; // //void HoanVi(Data &a, Data &b) //{ // Data c = a; // a = b; // b = c; //} // //void SelectionSort(List &L) //{ // Node* p, *pPtr, *max; // if (L.pHead == L.pTail || L.pHead == NULL) return; // p = L.pHead; // while (p != L.pTail) // { // max = p; // pPtr = p->pNext; // while (pPtr) // { // if (max->info.MaSP < pPtr->info.MaSP) // max = pPtr; // pPtr = pPtr->pNext; // } // HoanVi(max->info, p->info); // p = p->pNext; // } //} // //void DeleteNode(List &L, Node *p) //{ // if (p == NULL) return; // if (L.pHead == L.pTail && L.pHead == NULL) return; // // if (L.pHead == L.pTail) // { // p = L.pHead; // L.pHead = L.pTail = NULL; // delete p; // return; // } // // if (p == L.pHead) // { // L.pHead = p->pNext; // L.pHead->pPrev = NULL; // delete p; // return; // } // if (p == L.pTail) // { // L.pTail = p->pPrev; // L.pTail->pNext = NULL; // delete p; // return; // } // // Node *p1 = p->pPrev; // Node *p2 = p->pNext; // p1->pNext = p2; // p2->pPrev = p1; // delete p; //} // //void Delete(List &L) //{ // Node *p = L.pHead; // Node *pNext = NULL; // while (p != NULL) // { // if (p->info.NamSX + p->info.BH > NHT) // { // pNext = p->pNext; // DeleteNode(L, p); // p = pNext; // } // else // p = p->pNext; // } //}