zoukankan      html  css  js  c++  java
  • 链表

    struct ListNode{
        int m_nValue;
        ListNode* m_pNext;
    }
    
    ListNode* CreateListNode(int value);
    void ConnectListNodes(ListNode* pCurrent, ListNode* pNext);
    void PrintListNode(ListNode* pNode);
    void PrintList(ListNode* pHead);
    void DestroyList(ListNode* pHead);
    void AddToTail(ListNode** pHead, int value);
    void RemoveNode(ListNode** pHead, int value);
    //创建链表 ListNode* CreateListNode(int value){ ListNode* pNode = new ListNode(); pNode->m_nValue = value; pNode->m_pNext = nullptr; return pNode; } //添加元素 void AddToTail(ListNode** pHead,int value){ ListNode* pNew = new ListNode(); pNew->value = value; pNew->next = nullptr; if(*pHead == nullptr) *pHead = pNew; else{ ListNode* pNode = new ListNode(); pNode = *pHead; while(*pHead != nullptr) pHead = pHead->m_pNext; pNode->m_pNext = pNew; } } //删除元素 void RemoveNode(ListNode** pHead,int value){ if(pHead == nullptr || *pHead == nullptr) return; ListNode* pToBeDeleted = nullptr; if((*pHead)->m_nValue == value){ pToBeDeleted = *pHead; *pHead = (*pHead)->m_pNext; } else{ ListNode* pNode = *pHead; while(pNode->m_pNext != nullptr && pNode->m_pNext->m_nValue != value) pNode = pNode->m_pNext; if(pNode->m_pNext != nullptr && pNode->m_pNext->m_nValue == value){ pToBeDelted = pNode->m_pNext; pNode->m_pNext = pNode->m_pNext->m_pNext; } } if(pToBeDeleted != nullptr){ delete pToBeDeleted; pToBeDeleted = nullptr; } } //销毁链表 void DestroyList(ListNode* pHead){ ListNode* pNode = pHead; while(pNode != nullptr){ pHead = pHead->m_pNext; delete[] pNode; pNode = pHead; } } //打印链表 void PrintList(ListNode* pHead){ printf("PringList starts. "); ListNOde* pNode = pHead; whiel(pNode != nullptr){ printf("%d ",pNode->m_nValue); pNode = pNode->m_pNext; } printf("PrintLisr end. "); } //打印节点 void PrintListNode(ListNode* pNode){ if(pNode == nullptr){ printf("The node is nullptr. "); } else{ printf("The key node is %d. ",pNode->m_nValue); } } //连接两个节点 void ConnectListNodes(ListNode* pCurrent,ListNode* pNext){ if(pCurrent == nullptr){ printf("Error to connect two nodes. "); exit(1); } pCurrent->m_pNext = pNext; }
  • 相关阅读:
    hmailserver
    用数据库管理SERV-U的用户时,如何修改密码及原理
    一个jquery的图片下拉列表 ddSlick
    图片下拉列表
    mvc 用户控件 ascx 获取 View 页面的值
    asp.net mvc 通过修改路由规则来实现页面的URL多参数传递
    tips
    让ie6/7/8兼容css3的圆角阴影等特殊效果的方法 PIE1.0.0及placeholder在这些IE下生效的方法
    IE8下ckeditor无法正常使用,提示"例外被抛出且未被接住"的解决办法
    iis6 下发布MVC2项目的方法
  • 原文地址:https://www.cnblogs.com/ovs98/p/9870675.html
Copyright © 2011-2022 走看看