1.图
2.上代码
三个调用函数:建立链表void setting(abct head,int n);
链表逆置void reverse(abct head);
链表输出void myprintf(abct head);
#include#include typedef struct abc { int data; struct abc* next; }* abct; int main() { void setting(abct head,int n); void reverse(abct head); void myprintf(abct head); int n=0; abct head; head=(abct)malloc(sizeof(struct abc)); scanf("%d",&n); setting(head,n); reverse(head); myprintf(head); return 0; } void setting(abct head,int n) { abct q=head,p; while(n>=1) { p=(abct)malloc(sizeof(struct abc)); scanf("%d",&p->data); q->next=p; q=p; n--; } p->next=NULL; } void reverse(abct head) { abct q=head->next,r=NULL; head->next=NULL; //先断链 while(q!=NULL) { r=q->next; q->next=head->next; head->next=q; q=r; } } void myprintf(abct head) { abct q=head->next; int i=1; while(q!=NULL) { printf(" %d",q->data); q=q->next; } }



