LNode, *LinkList; LinkList CreatList(LNode*); void RverList(LNode*); void Print(LNode*); int main(int argc, char* argv[]) { LNode *head; head=(LNode*)malloc(sizeof(LNode)); head->next=NULL; head=CreatList(head); Print(head); RverList(head); Print(head); return 0; } //头插法建立单链表 LinkList CreatList(LNode *head) { LNode *L; ElemType x; scanf("%d",&x); while(x!=999){ L=(LNode*)malloc(sizeof(LNode)); L->data=x; L->next=head->next; head->next=L; scanf("%d",&x); } return head; } //就地逆置单链表 void RverList(LNode *head){ LNode *p=head->next; LNode *q=p->next; head->next=NULL; while(p){ q=p->next; p->next=head->next; head->next=p; p=q; } } //打印全部结点 void Print(LNode *head) { LNode *p=head->next; while(p){ printf("%4d",p->data); p=p->next; } printf("\n"); } ~~~ ## 附件2 ~~~ #include#includetypedef int ElemType; typedef struct LNode{ ElemType data; struct LNode *next; }LNode, *LinkList; LinkList CreatList(LNode*); void RverList(LNode*); void Print(LNode*); int main(int argc, char* argv[]) { LNode *head; head=(LNode*)malloc(sizeof(LNode)); head->next=NULL; head=CreatList(head); Print(head); RverList(head); Print(head); return 0; } //头插法创建单链表 LinkList CreatList(LNode *head) { LNode *L; ElemType x; scanf("%d",&x); while(x!=999){ L=(LNode*)malloc(sizeof(LNode)); L->data=x; L->next=head->next; head->next=L; scanf("%d",&x); } return head; } //就地逆置单链表 void RverList(LNode *head){ LNode *pre=head; LNode *p=pre->next; LNode *q=p->next; p->next=NULL; while(q){ pre=p; p=q; q=q->next; p->next=pre; } head->next=p; } //打印全部结点 void Print(LNode *head) { LNode *p=head->next; while(p){ printf("%4d",p->data); p=p->next; } printf("\n"); } ~~~