チェーンテーブル反転(チェーンテーブル1→2→3→4→5→6,k=2,反転後2→1→4→3→6→5)
チェーンテーブルが反転します.
チェーンテーブル1→2→3→4→5→6,k=2,反転後2→1→4→3→6→5,k=3,反転後3→2→6→5,反転後3→2→6→5→4,k=4,反転後4→3→1→5→6,ヒント:この問題はチェーンテーブル逆置のアップグレード変形である.
コード:
チェーンテーブル1→2→3→4→5→6,k=2,反転後2→1→4→3→6→5,k=3,反転後3→2→6→5,反転後3→2→6→5→4,k=4,反転後4→3→1→5→6,ヒント:この問題はチェーンテーブル逆置のアップグレード変形である.
コード:
pNode RotateList(pNode* pHead, DataType k)
{
pNode pPre = Find(*pHead, k);
pPre = pPre->next;
pNode pCur = *pHead;
pNode pNewNode = NULL;
pNode pCur2 = NULL;
while (pCur != pPre)
{
pNewNode = pCur;
pCur = pCur->next;
pNewNode->next = pCur2;
pCur2 = pNewNode;
}
(*pHead)->next = pPre;
return pNewNode;
}