#include
#include
typedef struct node
{
int data;
struct node *next;
}Node;
Node *Initiate(Node *linklist)
{
linklist=NULL;
return linklist;
}
Node* creatlist_end(Node *linklist)//尾插法
{
int i,n;
Node *p,*q;
scanf("%d",&n);
for(i=0;i
{
p=(Node *)malloc(sizeof(Node));
scanf("%d",&p->data);
if(NULL==linklist)
{
q=linklist=p;
}
else
{
p->next=NULL;
q->next=p;
q=p;
}
}
return linklist;
}
Node* creatlist_front(Node *linklist)//头插法
{
Node *q;
int i,n;
scanf("%d",&n);
for(i=0;i
{
q=(Node*)malloc(sizeof(Node));
scanf("%d",&q->data);
q->next=linklist;
linklist=q;
}
return linklist;
}
Node* reverselist(Node *linklist)//逆置
{
Node *pre=linklist;
if(NULL==pre)
return;
Node *pcur=pre->next;
while(pcur!=NULL)
{
Node *pnext=pcur->next;
pcur->next=pre;
pre=pcur;
pcur=pnext;
}
linklist->next=NULL;
linklist=pre;
}
void printlist(Node *linklist)
{
while(linklist)
{
printf("%d ",linklist->data);
linklist=linklist->next;
}
printf("\n");
}
int main()
{
Node *LinkList=Initiate(LinkList);
LinkList=creatlist_front(LinkList);
printlist(LinkList);
LinkList=creatlist_end(LinkList);
printlist(LinkList);
LinkList=reverselist(LinkList);
printlist(LinkList);
}