該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
題目要求是你輸入a->b->c->d,然后存在內存里,然后改變在內存里的存儲,改成存d->c->b->a,然后輸出還是abcd,能不能就是用一個數組也存一份輸入的,然后用數組修改鏈表里的內容為dcba,然后在倒置鏈表輸出?求幫助修改
#include
#include
#define LEN sizeof(struct fuhao)
struct fuhao
{
char a;
struct fuhao *next;
};
int n;
struct fuhao *creat(void)
{
struct fuhao *head;
struct fuhao *p1,*p2;
n=0;
p1=p2=(struct fuhao *)malloc(sizeof(LEN));
scanf("%c",&p1->a);
head=NULL;
while(p1->a!=NULL)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct fuhao *)malloc(LEN);
scanf("%c",&p1->a);
}
p2->next=NULL;
return (head);
}
struct fuhao * reverse(struct fuhao *x)
{
struct fuhao *y;
struct fuhao *t;
struct fuhao *r;
if( NULL==x )
return NULL;
t=NULL;
r=NULL, y=x; //(0)
while(y!=NULL)
{
t = y->next; //(1)
y->next = r; //(2)
r = y; //(3)
y = t; //(4)
}
while(r)
{
printf("%c",r);
r=r->next;
}
}
int main()
{
struct fuhao *pt;
pt=creat();
reverse(pt);
}