当前位置: 代码迷 >> C语言 >> [原创]求助,问题在哪里?
  详细解决方案

[原创]求助,问题在哪里?

热度:86   发布时间:2006-03-05 15:57:00.0
[原创]求助,问题在哪里?
#include<stdio.h>
#include<stdlib.h>
struct lnode
{
int data;
struct lnode *next;
};
main()
{
int n,i;
struct lnode *new,*q,*head;
printf("please input the length of link:");
scanf("%d",&n);
head=NULL; //逆位序输入N个元素的值,建立单链线性表
for(i=n;i>0;i--)
{
new=(struct lnode *)malloc(sizeof(struct lnode));
scanf("%d",&new->data);
new->next=head;
head=new;
}
q=head;
printf("按逆序输出\n");
for(i=0;i<n;i++)
{
printf("%d\n",q->data);
q=q->next;
}
struct lnode *p,*s,*k; //逆转链表,假设head!=NULL
k=head;
s=k->next;
p=s->next;
if(s->next!=NULL)
{
while(p->next!=NULL)
{
s->next=k;
if (k==head)
k->next=NULL;
k=s;
s=p;
p=p->next;
}
if(p->next==NULL)
{
p->next=s;
s->next=k;
}
head=p; /*表头指向p*/
}
else
{
s->next=k;
k->next=NULL;
head=s; /*表头指向s*/
}
q=head;
printf("输出\n");
for(i=0;i<n;i++)
{
printf("%d\n",q->data);
q=q->next;
}
}
大家好,程序没有链表逆转后面那部分就没问题,加上后就有问题了,能解释一下吗?
----------------解决方案--------------------------------------------------------
struct lnode *new,*q,*head;是因为你用了关键字new

----------------解决方案--------------------------------------------------------
讲详细点吧,不太清楚啊,红色上面的没问题啊

[此贴子已经被作者于2006-3-5 17:17:57编辑过]



----------------解决方案--------------------------------------------------------
没人看啊???
----------------解决方案--------------------------------------------------------
问题已解决!!!!
----------------解决方案--------------------------------------------------------
  相关解决方案