typedef struct Node
{
int data;
struct Node * pNext;
}NODE, *PNODE;
bool insert_list(PNODE pHead, int pos, int val)
{
int i=0;
PNODE p = pHead;
while(p != NULL && i<pos-1)
{
p = p->pNext;
++i;
}
if(i>pos-1 || p == NULL)
return false;
NODE pNew = (NODE)malloc(sizeof(NODE));
if(NULL == pNew)
{
printf("新节点分配失败!\n");
exit(-1);
}
pNew->data = val;
NODE q = p->pNext;
p->pNext = pNew;
pNew->pNext = q;
return true;
}
bool delete_list(PNODE pHead, int pos, int *pVal)
{
int i=0;
PNODE p = pHead;
while(p->pNext != NULL && i<pos-1)
{
p = p->pNext;
++i;
}
if(i>pos-1 || p->pNext == NULL)
return false;
NODE q = p->pNext;
*pVal = p->data;
p->pNext = p->pNext->pNext;
free(q);
return true;
}