util.c
来自「图书管理系统,可以查询,借书,统计借书时间日期,功能较为全面,但比较简单.」· C语言 代码 · 共 123 行
C
123 行
#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 + =
减小字号Ctrl + -
显示快捷键?