创建,添加,更改,删除,销毁;
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef int DataType;
typedef struct node
{
DataType Data;
struct node *pNext;
}LinkNode;
LinkNode *CreateLinkList(void)
{
LinkNode *pTmpNode=NULL;
pTmpNode=malloc(sizeof(LinkNode));
if(pTmpNode==NULL)
{
return NULL;
}
pTmpNode->pNext=NULL;
return pTmpNode;
}
int InsertHeadLinkList(LinkNode *pHead ,DataType TmpData)
{
LinkNode *pTmpNode=NULL;
pTmpNode=malloc(sizeof(LinkNode));
if(pTmpNode==NULL)
{
return -1;
}
pTmpNode->Data=TmpData;
pTmpNode->pNext=pHead->pNext;
pHead->pNext=pTmpNode;
return 0;
}
int ShowLinkList(LinkNode *pHead)
{
LinkNode *pTmpNode=NULL;
pTmpNode=pHead->pNext;
while(pTmpNode!=NULL)
{
printf("%d " , pTmpNode->Data);
pTmpNode=pTmpNode->pNext;
}
printf("\n");
return 0;
}
int ReplaceLinkList(LinkNode *pHead ,DataType oldData,DataType newData)
{
LinkNode *pTmpNode=NULL;
pTmpNode=pHead->pNext;
while (pTmpNode->Data!=oldData)
{
pTmpNode=pTmpNode->pNext;
}
pTmpNode->Data=newData;
return 0;
}
int DeleteLinkList(LinkNode *pHead,DataType gool)
{
LinkNode *pTmpNode=NULL;
LinkNode *pPreNode=NULL;
pTmpNode=pHead->pNext;
pPreNode=pHead;
while(pTmpNode!=NULL)
{
if(pTmpNode->Data==gool)
{
pPreNode->pNext=pTmpNode->pNext;
free(pTmpNode);
pTmpNode=pPreNode->pNext;
}
else
{
pTmpNode=pTmpNode->pNext;
pPreNode=pPreNode->pNext;
}
}
return 0;
}
int DestoryLinkList(LinkNode **ppHead)
{
LinkNode *pTmpNode=NULL;
LinkNode *pfreeNode=NULL;
pTmpNode=pfreeNode=*ppHead;
while(pTmpNode!=NULL)
{
pTmpNode=pTmpNode->pNext;
free(pfreeNode);
pfreeNode=pTmpNode;
}
*ppHead=NULL;
return 0;
}
int main()
{
LinkNode *linklist=NULL;
linklist=CreateLinkList();
InsertHeadLinkList(linklist,1);
InsertHeadLinkList(linklist,2);
InsertHeadLinkList(linklist,3);
InsertHeadLinkList(linklist,4);
InsertHeadLinkList(linklist,5);
ShowLinkList(linklist);
ReplaceLinkList (linklist ,3,10);
ReplaceLinkList(linklist,1,50);
ShowLinkList(linklist);
DeleteLinkList(linklist,50);
DeleteLinkList(linklist,10);
ShowLinkList(linklist);
DestoryLinkList(&linklist);
printf("%p , %d",linklist ,linklist->Data);
return 0;
}
5060

被折叠的 条评论
为什么被折叠?



