赞
踩
- #include "stdio.h"
-
- #include "stdlib.h"
-
- typedef int ElemType;
-
- typedef struct node
-
- {
-
- ElemType data;
-
- struct node *next;
-
- }Node,*LinkList;
-
-
-
- LinkList createFromTail();
-
- void printLinkList(LinkList L);
-
- void reverseLinkList(LinkList L);
-
-
-
- int main()
-
- {
-
- LinkList L;
-
-
-
- L=createFromTail();
-
-
-
- printf("\nAfter create,the list is:\n");
-
- printLinkList(L);
-
-
-
- reverseLinkList(L);
-
- printf("\nAfter Reverse,the list is:\n");
-
- printLinkList(L);
-
-
-
- return 1;
-
- }
-
- //用尾插法建立一个带头结点的单链表
-
- LinkList createFromTail()
-
- {
-
- LinkList L;
-
- Node *r, *s;
-
- int flag =1;
-
- int d;
-
- L=(Node * )malloc(sizeof(Node));
- //该结点为头结点
-
- L->next=NULL;
-
- r=L;
-
- printf("Input int one by one,-1 to end:\n");
-
- while(flag)
-
- {
-
- scanf("%d",&d);
-
- if(c!=-1)
-
- {
-
- s=(Node*)malloc(sizeof(Node));
-
- s->data=c;
-
- r->next=s;
-
- r=s;
-
- }
-
- else
-
- {
-
- flag=0;
-
- r->next=NULL;
-
- }
-
- }
-
-
-
- return L;
-
- }
-
-
-
- void printLinkList(LinkList L)
-
- {
-
- Node *p;
-
- p=L->next;
-
-
-
- while(p!=NULL)
-
- {
-
- printf("%d ",p->data);
-
- p=p->next;
-
- }
-
- }
-
-
-
- void reverseLinkList(LinkList L)
-
- {
-
- Node *p=L->next,*q;
- /* P为原链表的当前处理结点*/
-
-
-
- L->next=NULL;
-
- while(p!=NULL)
-
- { q=p->next;
-
- p->next=L->next;
-
- L->next=p;
-
- p=q;
-
- }
-
- }
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。