#include <stdlib.h>
#inlcude <malloc.h>
#include <stdio.h>
typedef struct node
{
int data;
strutc node * pNext;
}Node,*pNode;
//函数说明
pNOde CreatList();
int AddList();
int DelList();
int TraveList();
int LoopList();
/*这个创建链表的数据都是通过手动输入进取得到的*/
pNode CreatList()
{
int i;
int length;
int val;
scanf("%d",&length);
printf("length of the list is %d",length);
pNode phead = (pNode)malloc(sizeof(Node));
pNode ptail = phead;
ptail->pNext = NULL;
for (i=0;i<length;i++ )
{
scanf("%d",&val);
pNode pNew = (pNode)malloc(sizeof(Node));
pNew->data = val;
ptail->pNext = pNew;
pNew->pNext = NULL;
ptail = pNew;
}
return phead;
}
int AddList(pNode pHead, int front,int data)
{
pNode _node = phead;
//判断用户输入的数据是否大于等于1,及_node是否为空
if ((front < 1) && (NULL != _node))
{
return false;
}
for(int i=0; i < front-1;++i)
_node = _node->pNext;
pNode pswap;
pswap = _node->pNext;
pNode pNew =malloc(sizeof(Node));
pNew->pNext = _pswap;
_node->pNext = pNew;
pNew->member = data ;
}
int DelList(pNode pHead, int front)
{
pNode _node = phead;
//判断用户输入的数据是否大于等于1,及_node是否为空
if ((front < 1) && (NULL != _node))
{
return false;
}
for(int i=0; i < front-1;++i)
_node = _node->pNext;
pNode pswap;
int m = _node->pNext->member;
pswap = _node->pNext;
_node->pNext = pswap->pNext;
free(pswap);
return m;
}
int TraveList()
{
pNode p = pHead->pNext; //将头节点的指针给予临时节点p
while(NULL != p) //节点p不为空,循环
{
printf("%d ",p->member);
p = p->pNext;
}
printf("\n");
return ;
}