
数据结构C++实现
文章平均质量分 66
lafloveyou
这个作者很懒,什么都没留下…
展开
-
C++单向链表之链表翻转
代码如下:ListNode * ReverseList(ListNode* pHead){ ListNode *pReverseHead = NULL; ListNode* pNode = pHead; ListNode* pPrev = NULL; while (pNode != NULL) { ListNode* pNext = pNode->m_pNext; if (原创 2016-04-26 21:41:15 · 324 阅读 · 0 评论 -
C++单向链表-查找某个节点
本算法从下标1开始遍历 利用双指针的形式遍历, 大大提高了代码的查找速度:ListNode* FindKthToTail(ListNode* pListHead, unsigned int k){ if (pListHead == NULL || k ==0) { return NULL; } ListNode* pAhead = pListHead; ListNode* pB原创 2016-04-14 08:33:36 · 1805 阅读 · 0 评论 -
C++单向链表之删除节点
笔者的时间复杂度为O(1)下面是实现的函数:void DeleteNode(ListNode** pHead, ListNode* pToBeDeleted){//删除链接节点算法 时间复杂度为O(1); if (!pHead || !pToBeDeleted) { return; } if (pToBeDeleted->m_pNext != NULL) { ListNo原创 2016-04-07 20:18:40 · 1004 阅读 · 0 评论 -
C++单向链表之链表的创建
题主用的是VS2013编辑器链表的创建头文件:struct ListNode{ int m_nValue; ListNode* m_pNext;};_declspec(dllexport) ListNode* CreateListNode(int value);_declspec(dllexport)void CoonnectListNode(ListNode* pCurren原创 2016-04-14 08:41:08 · 419 阅读 · 0 评论 -
C++单向链表之合并链表
代码如下ListNode* Merge(ListNode* pHead1, ListNode* pHead2){ if (pHead1 == NULL) { return pHead2; } else if (pHead2 == NULL) { return pHead1; } ListNode* pMergeHead = NULL; if (pHead1->m_nVal原创 2016-04-27 13:29:59 · 419 阅读 · 0 评论