//덱의 앞 노드 반환 deleteFront //1. 2개 이상의 노드가 있을시와 2. 노드가 1개인 덱에서의 있을시 2가지가 있다.(노드 제거 후 공백상태인지..) //2. 의 경우에서 제일 앞쪽 노드를 반환하기 때문에 pfrontnode에는 문제가 없으나 //뒤쪽 리어 노드를 가리키는 pRearNode에 별도처리가 필요하다. DequeNode* deleteFrontLD() { DequeNode *pReturn=NULL; if(!isLinkedDequeEmpty()) { pReturn=pFrontNode; pFrontNode=pFrontNode->pRLink; pReturn->pRLink=NULL; //제거된 자료에서 더이상 다른 노드로 접근을 해서는 안되기 때문에..
m_currentElementCount--; //2. 덱에 남은 마지막 노드를 제거하는 경우 if(isLinkedDequeEmpty()) { pRearNode=NULL; } //1. 일반적인 경우 else { pFrontNode->pLLink=NULL; } } return pReturn; }
//덱의 뒤 노드 반환 deleteRear //앞 노드 반환과 비슷하다. 이건 반대로 앞쪽에 문제가 있겠지?( DequeNode* deleteRearLD() { DequeNode *pReturn=NULL; if(!isLinkedDequeEmpty()) { pReturn=pRearNode; pRearNode=pRearNode->pLLink; pReturn->pLLink=NULL; m_currentElementCount--; if(isLinkedDequeEmpty()) { pFrontNode=NULL; } else { pRearNode->pRLink=NULL; } } return pReturn; } };