当前位置: 首页>>代码示例>>C++>>正文


C++ ListNode::SetNext方法代码示例

本文整理汇总了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;
 }
开发者ID:0xMF,项目名称:coreclr,代码行数:52,代码来源:list.hpp

示例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;
    }
开发者ID:0xMF,项目名称:coreclr,代码行数:20,代码来源:list.hpp

示例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--;
        }
    }
开发者ID:0xMF,项目名称:coreclr,代码行数:38,代码来源:list.hpp


注:本文中的ListNode::SetNext方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。