#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct Node
{
int data ;
struct Node * pNext;
}sList;
int createList(sList * list )
{
sList * pM, * pCur;
if (list == NULL )
{
printf("error parameter list" );
return - 1 ;
}
pCur = list ;
printf("\nplease enter you data '-1' is end!\n" );
fscanf(stdin, "%d" , & (pCur-> data ));
while (pCur-> data != - 1 )
{
pM = (sList* )malloc(sizeof(sList));
if (pM == NULL )
{
printf("error parameter pM" );
return - 2 ;
}
pCur-> pNext = pM;
pCur = pM;
printf("\nplease enter you data '-1' is end!\n" );
fscanf(stdin, "%d" , & (pCur-> data ));
}
pCur-> pNext = NULL ;
return 0 ;
}
int showList(sList * list )
{
if (list == NULL )
{
printf("error parameter list" );
return - 1 ;
}
sList * tmp = list ;
while (tmp != NULL )
{
printf("lsit:%d\n" , tmp-> data );
tmp = tmp-> pNext;
}
return 0 ;
}
int insertList(sList * list , int seat, int data )
{
if (list == NULL )
{
printf("error parameter list" );
return - 1 ;
}
sList * pCur = list ;
while (pCur && -- seat)
{
pCur = pCur-> pNext;
}
sList * pM = (sList* )malloc(sizeof(sList));
if (pM == NULL )
{
printf("error parameter pM" );
return - 2 ;
}
pM-> data = data ;
pM-> pNext = pCur-> pNext;
pCur-> pNext = pM;
return 0 ;
}
int deleteNode(sList * list , int seat)
{
sList * pCur = list ;
sList * pDel;
while (pCur&&-- seat)
{
pCur = pCur-> pNext;
}
pDel = pCur-> pNext;
pCur-> pNext = pDel-> pNext;
free(pDel);
return 0 ;
}
int deleteList(sList * list )
{
return 0 ;
}
int inverseList(sList * list )
{
if (list == NULL )
{
printf("error parameter list" );
return - 1 ;
}
sList * pHead= NULL ;
sList * pPre= NULL ;
sList * pCur= NULL ;
sList * pNext= NULL ;
pHead = list ;
if (pHead-> pNext == NULL )
{
return 0 ;
}
if (pHead-> pNext-> pNext == NULL )
{
return 0 ;
}
pPre = pHead-> pNext;
pCur = pPre-> pNext;
while (pCur)
{
pNext = pCur-> pNext;
pCur-> pNext = pPre;
pPre = pCur;
pCur = pNext;
}
pHead-> pNext-> pNext = NULL ;
pHead-> pNext = pPre;
return 0 ;
}
int mainzzweq()
{
int ret = 0 ;
sList * mylist = (sList* )malloc(sizeof(sList));
ret = createList(mylist);
if (ret != 0 )
{
printf("func createList() failure" );
return - 1 ;
}
ret = showList(mylist);
if (ret != 0 )
{
printf("func showList() failure" );
return - 1 ;
}
ret = insertList(mylist, 2 , 555 );
if (ret != 0 )
{
printf("func showList() failure" );
return - 1 ;
}
ret = showList(mylist);
if (ret != 0 )
{
printf("func showList() failure" );
return - 1 ;
}
ret = deleteNode(mylist,2 );
ret = showList(mylist);
ret = inverseList(mylist);
ret = showList(mylist);
return 0 ;
}