数据结构8581线性链表逆置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#define ERROR 0

#define OK 1

#define ElemType int

typedef struct LNode

{

int data;

struct LNode *next;

} LNode,*LinkList;

int CreateLink_LA(LinkList &L,int n)

{

LinkList p,q;

int i;

ElemType e;

L = (LinkList)malloc(sizeof(LNode));

L->next = NULL;

q = (LinkList)malloc(sizeof(LNode));

q = L;

for (i=0; i

{

scanf("%d", &e);

p = (LinkList)malloc(sizeof(LNode));

p->next=NULL;

q->next=p;

p->data=e;

q=p;

}

return OK;

}

int LoadLink_L1(LinkList &L)

{

LinkList p=L->next;

if(p==NULL)printf("The List is empty!");

else

{

printf("The List is:");

while(p!=NULL)

{

printf("%d ",p->data);

p=p->next;

}

}

printf("\n");

return OK;

}

int LoadLink_L2(LinkList &L)

{

LinkList p=L->next,t,q;

q=p;

if(p==NULL)printf("The List is empty!");

else

{

printf("The turned List is:");

while(p->next!=NULL)

{

t=p;

p=p->next;

}

printf("%d ",p->data);

while(q!=NULL)

{

p=L->next;

while(p->next!=NULL)

{

if(p->next==t)

{

printf("%d ",t->data);

t=p;

break;

}

p=p->next;

}

q=q->next;

}

printf("%d ",L->next->data);

}

printf("\n");

return OK;

}

int main()

{

LinkList T1;

int n;

scanf("%d",&n);

if(!CreateLink_LA(T1,n)) printf("ERROR\n");

if(!LoadLink_L1(T1)) printf("ERROR\n");

if(!LoadLink_L2(T1)) printf("ERROR\n");

return OK;

}

相关文档
最新文档