将单循环链表该双循环链表,重写了程序,还是有问题请大家帮忙看看
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{
int data;
struct LNode *p,*next;
} LNode, *LinkList;
/*建立循环单链表*/
LinkList createList_L(int n)
{
LinkList L=NULL;
LNode *s,*r=NULL;
int i;
printf("请输入元素的个数n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
s=(LNode*)malloc(sizeof(LNode));
//s->data=i;
s->next=NULL;
if(L==NULL)
{
r=L=s;
}
else
r->next=s;
r=s;
}
r->next=L;
printf("输入这些结点的数据:",n);
for(i=1;i<=n;i++)
{
scanf("%d",&s->data);
s=s->next;
}
return L;
}
void LinkChange(LinkList L)
{
LinkList q;
for(q=L;!q->next->p;q=q->next)
q->next->p=q;
}
void print_LinkList(LinkList L)
{
LinkList p;
p=L->next ;
//for(;p!=NULL;p=L->next)
printf("%d",p->data);
}
int main()
{
LinkList L;
int n;
L=createList_L(n);
print_LinkList(L);
LinkChange( L);
print_LinkList(L);
return 0;
}