• 链表


    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; }
  • 相关阅读:
    EMQ X v4.3 正式发布:性能大幅提升,更好用的多语言扩展
    全新 EMQ X Cloud 物联网云平台重磅发布
    MQTT 和 CoAP 在 EMQ X 世界的一次「约会」
    Python MQTT 异步框架 —— HBMQTT
    EMQ X 团队:连接数亿关键 IoT 设备|EMQ 2021 全球招聘季
    让每一个来自社区的声音被听见、有回响:EMQ X 开源项目正式采用 RFC 流程
    Kuiper 1.1.2 正式发布
    Xamarin.Forms iOS打包上传AppStore,奇妙的崩溃 EXC_CRASH (SIGABRT)
    大数据系列修炼-Scala课程01
    文本摘要简述
  • 原文地址:https://www.cnblogs.com/ovs98/p/9870675.html
Copyright © 2020-2023  润新知