#include <stdio.h>
#include <stdlib.h>
#define Length 5
typedef struct LinkList{
int data;
struct LinkList* pNext;
}LinkList;
LinkList* CreateLinkList(void)
{
int i;
LinkList* pHead = (LinkList*)malloc(sizeof(LinkList));
LinkList* pTail = pHead;
for(i=0;i<Length;i++)
{
LinkList* pNew = (LinkList*)malloc(sizeof(LinkList));
pNew->data = i+1;
pNew->pNext = NULL;
pTail->pNext = pNew;
pTail = pNew;
}
return pHead;
}
int TraverseLinkList(LinkList* pHead)
{
LinkList* p = pHead->pNext;
if(NULL == pHead || NULL == p)
return -1;
while(NULL!=p)
{
printf("%d ",p->data);
p = p->pNext;
}
printf("\n");
return 0;
}
/*LinkList* ReverseList(LinkList* pHead)
{
LinkList* NewList = (LinkList*)malloc(sizeof(LinkList));
LinkList* tmp;
if(NULL == pHead || NULL==pHead->pNext)
return pHead;
NewList->data = pHead->data;
NewList->pNext = NULL;
while(pHead->pNext != NULL)
{
tmp = NewList->pNext;
NewList->pNext = pHead->pNext;
pHead->pNext = pHead->pNext->pNext;
NewList->pNext->pNext = tmp;
}
return NewList;
}*/
LinkList* ReverseList(LinkList* pHead)
{
LinkList* tmp = NULL;
LinkList* p = NULL;
if(pHead == NULL)
{
return NULL;
}
tmp = pHead->pNext;
while(tmp->pNext != NULL)
{
p = tmp->pNext; //
tmp->pNext = p->pNext;
p->pNext = pHead->pNext;
pHead->pNext = p;
}
return pHead;
}
void PrintListfan(LinkList* pHead)
{
if(pHead == NULL)
{
return ;
}
else
{
PrintListfan(pHead->pNext);
printf("%d ", pHead->data);
}
}
int main()
{
LinkList* pHead = CreateLinkList();
TraverseLinkList(pHead);
//LinkList* pNewHead = ReverseList(pHead);
//TraverseLinkList(pNewHead);
PrintListfan(pHead->pNext);
return 0;
}
链表简单操作
最新推荐文章于 2022-07-13 19:51:27 发布