单链表倒置
#include <stdio.h>#include <stdlib.h>
typedef struct node
{
int data;
struct node *next;
}lnode,*linklist;
// op
int initlist(linklist &L)
{
L =(node *)malloc(sizeof(lnode));
L->next=NULL;
if(L->next)
{
printf("init is error\n");
}
else
{
printf("sucessful :\n");
}
return 1;
}
linklist crate_L(linklist L)
{
int a[5]={29,76,18,45,25};
lnode *p =L ;
for(int i=0;i<5;i++)
{
lnode *q;
q=(linklist)malloc(sizeof(lnode));
q->data =a[i];
p->next = q;
p = q;
p->next = NULL;
}
return L ;
}
void display_list(const linklist &L)
{
printf("output number :\n");
linklist p = L->next;
while(p)
{
printf("lnode is:%d \n",p->data);
p = p->next;
}
}
void reverse(linklist L)
{
lnode *p,*q;
p = L->next;
L->next =NULL;
while(p)
{
q =p;
p= p->next;
q->next =L->next;
L->next =q;
}
display_list(L);
}
void main()
{
linklist L;
initlist(L);
crate_L(L);
display_list(L);
reverse(L);
}
小弟写的小程序,望大家指导。共同退步。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。