本文整理汇总了C++中ListNode::SetNext方法的典型用法代码示例。如果您正苦于以下问题:C++ ListNode::SetNext方法的具体用法?C++ ListNode::SetNext怎么用?C++ ListNode::SetNext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ListNode
的用法示例。
在下文中一共展示了ListNode::SetNext方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AddHead
template <class Type> LISTNODE List<Type>::AddSorted(const Type &item,
LPVOID pfn)
{
ListNode<Type> *pNode = NULL;
LISTNODE pCurrNode = NULL;
LISTNODE pPrevNode = NULL;
int i;
Type curItem;
LONG (*pFN) (const Type item1, const Type item2);
pFN = (LONG (*) (const Type item1, const Type item2))pfn;
if(_pHead == NULL) {
return AddHead(item);
}
else {
pCurrNode = GetHeadPosition();
curItem = ((ListNode<Type> *) pCurrNode)->GetItem();
for (i = 0; i < _iCount; i++) {
if (pFN(item, curItem) < 1) {
NEW_CONSTR(pNode, ListNode<Type>(item));
if (pNode) {
pNode->SetPrev((ListNode<Type> *)pPrevNode);
pNode->SetNext((ListNode<Type> *)pCurrNode);
// update pPrevNode
if(pPrevNode) {
((ListNode<Type> *)pPrevNode)->SetNext(pNode);
}
else {
_pHead = pNode;
}
// update pCurrNode
((ListNode<Type> *)pCurrNode)->SetPrev(pNode);
_iCount++;
}
break;
}
pPrevNode = pCurrNode;
GetNext(pCurrNode);
if(i+1 == _iCount) {
return AddTail(item);
}
else {
_ASSERTE(pCurrNode);
curItem = GetAt(pCurrNode);
}
}
}
return (LISTNODE)pNode;
}
示例2: return
template <class Type> LISTNODE List<Type>::AddHead(const Type &item)
{
ListNode<Type> *pNode = NULL;
NEW_CONSTR(pNode, ListNode<Type>(item));
if (pNode) {
_iCount++;
pNode->SetNext(_pHead);
pNode->SetPrev(NULL);
if (_pHead == NULL) {
_pTail = pNode;
}
else {
_pHead->SetPrev(pNode);
}
_pHead = pNode;
}
return (LISTNODE)pNode;
}
示例3:
template <class Type> void List<Type>::RemoveAt(LISTNODE pNode)
{
ListNode<Type> *pListNode = (ListNode<Type> *)pNode;
ListNode<Type> *pPrevNode = NULL;
ListNode<Type> *pNextNode = NULL;
if (pNode) {
pPrevNode = pListNode->GetPrev();
pNextNode = pListNode->GetNext();
if (pPrevNode) {
pPrevNode->SetNext(pNextNode);
if (pNextNode) {
pNextNode->SetPrev(pPrevNode);
}
else {
// We're removing the last node, so we have a new tail
_pTail = pPrevNode;
}
SAFE_DELETE(pListNode);
}
else {
// No previous, so we are the head of the list
_pHead = pNextNode;
if (pNextNode) {
pNextNode->SetPrev(NULL);
}
else {
// No previous, or next. There was only one node.
_pHead = NULL;
_pTail = NULL;
}
SAFE_DELETE(pListNode);
}
_iCount--;
}
}