《单链表的就地逆置.docx》由会员分享,可在线阅读,更多相关《单链表的就地逆置.docx(2页珍藏版)》请在三一办公上搜索。
1、单链表的就地逆置#include #include #include #define NULL 0 #define OK 1 typedef int ElemType; typedef int Status; /-单链表的存储结构-/ typedef struct LNode ElemType data; struct LNode *next; LNode,*LinkList; void CreastList_L(LinkList &L,int n)/创建带头结点的单链表L LNode *p,*q; int i; L=(LNode*)malloc(sizeof (LNode); L-next=
2、NULL; /先建立一个带头结点的单链表 p=L; for (i=1;idata); /输入元素值 q-next=NULL; p-next=q; p=q; void ListInverse_L(LinkList &L)/单链表的就地逆置 LNode *p,*q; p=L-next; L-next=NULL; while(p!=NULL) q=p-next; p-next=L-next; L-next=p; p=q; void PrintList(LinkList &L)/输出单链表 LNode *p=L-next; while(p!=NULL) printf(%d,p-data); p=p-next; void main int n; LinkList La; printf(Input the list num:); scanf(%d,&n); CreastList_L(La,n); printf(Before Inverse the list is:); PrintList(La); ListInverse_L(La); printf(nAfter Inverse the list is:); PrintList(La); printf(n);