?? util.c
字號:
#include "myStd.h"
#include "util.h"
ListNode* ListAddTail(ListNode* pList, DATATYPE* pData, int nMemLen)
{
if(pList!=NULL)
{
ListNode* pNewNode = (ListNode*)malloc(sizeof(ListNode));
ListNode* pTmp = pList;
DATATYPE* pNew = (DATATYPE*)malloc(nMemLen);
memcpy(pNew, pData, nMemLen);
pNewNode->pData = pNew;
pNewNode->pNext = NULL;
pNewNode->pPrev = NULL;
while (pTmp->pNext != NULL)
{
pTmp = pTmp->pNext;
}
pNewNode->pPrev = pTmp;
pTmp->pNext = pNewNode;
return pNewNode;
}
return NULL;
}
ListNode* ListAddHead(ListNode* pList, DATATYPE* pData, int nMemLen)
{
if(pList!=NULL)
{
ListNode* pNewNode = (ListNode*)malloc(sizeof(ListNode));
ListNode* pTmp = pList;
DATATYPE* pNew = (DATATYPE*)malloc(nMemLen);
memcpy(pNew, pData, nMemLen);
pNewNode->pData = pNew;
pNewNode->pNext = NULL;
pNewNode->pPrev = NULL;
while (pTmp->pPrev != NULL)
{
pTmp = pTmp->pPrev;
}
pNewNode->pNext = pTmp;
pTmp->pPrev = pNewNode;
return pNewNode;
}
return NULL;
}
ListNode* ListGenerate(DATATYPE* pData, int nMemLen)
{
ListNode* pNewNode = (ListNode*)malloc(sizeof(ListNode));
DATATYPE* pNew = (DATATYPE*)malloc(nMemLen);
memcpy(pNew, pData, nMemLen);
pNewNode->pData = pNew;
pNewNode->pNext = NULL;
pNewNode->pPrev = NULL;
return pNewNode;
}
ListNode* ListDeleteNode(ListNode* pList, DATATYPE* pData, int nMemLen)
{
ListNode* pRet = NULL;
if(pData != NULL)
{
ListNode* pTmp = pList;
while (pTmp != NULL)
{
if(pTmp->pData == pData)
{
if(pTmp->pPrev == NULL)
{
if(pTmp->pNext != NULL)
{
pTmp->pNext->pPrev = NULL;
}
pRet = pTmp->pNext;
}
else if(pTmp->pNext == NULL)
{
pTmp->pPrev->pNext = NULL;
pRet = pList;
}
else
{
pTmp->pPrev->pNext = pTmp->pNext;
pTmp->pNext->pPrev = pTmp->pPrev;
pRet = pList;
}
break;
}
pTmp = pTmp->pNext;
}
if((pTmp != NULL)&&(pTmp->pData == pData))
{
free(pData);
free(pTmp);
}
}
else
{
pRet = pList;
}
return pRet;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -