链表删除
r=p->next;
p->next=p->next-next;
free(r);
链表插入
q->next = p->next;
p->next = q;
链表创建与遍历
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct node
{
int data;
struct node * pnext;
}NODE,*PNODE;
PNODE creatlist();
void traverlist(PNODE phead);
int main()
{
PNODE phead;
phead = creatlist();
traverlist(phead);
return 1;
}
PNODE creatlist()
{
int len;
int val;
PNODE phead = (PNODE)malloc(sizeof(NODE));
if (NULL == phead)
{
printf("内存分配出错");
exit(-1);
}
PNODE ptail = phead;
ptail->pnext = NULL;
printf("您将输入的结点个数");
scanf("%d",&len);
for (int i=0;i<len;++i)
{
printf("您将输入第%d结点个数",i);
scanf("%d",&val);
PNODE pnew = (PNODE)malloc(sizeof(NODE));
pnew->data = val;
ptail->pnext = pnew;
pnew->pnext = NULL;
ptail = pnew;
}
return phead;
}
void traverlist(PNODE phead)
{
PNODE p= phead->pnext;
while(NULL != p)
{
printf("%d",p->data);
p = p->pnext;
}
}