注册 登录
编程论坛 新人交流区

单链表倒置

zw_green 发布于 2007-10-23 14:36, 374 次点击
#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);

}

小弟写的小程序,望大家指导。共同退步。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
1 回复
#2
lileyear2007-10-23 15:47
void reverse(linklist L)
要处理链表只有一个元素,和只有两个元素的 情况哦
1