您的位置:首页 > 理论基础 > 数据结构算法

【2118】数据结构实验之链表三:链表的逆置 (SDUT)

2014-08-28 10:44 169 查看

数据结构实验之链表三:链表的逆置

Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^

题目描述

输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。

输入

输入多个整数,以-1作为结束标志。

输出

输出逆置后的单链表数据。

示例输入

12 56 4 6 55 15 33 62 -1

示例输出

62 33 15 55 6 4 56 12
#include <stdio.h>#include <stdlib.h>struct node{int data;struct node *next;}*head;struct node *creat()//顺序建表{int a;struct node *head,*p,*tail;head=(struct node *)malloc(sizeof(struct node));head->next=NULL;tail=head;while(~scanf("%d",&a)&&a!=-1)//输入多组,直到输入-1时结束{p=(struct node *)malloc(sizeof(struct node));p->data=a;p->next=NULL;tail->next=p;tail=p;}return head;};void revers()//链表的逆置函数{struct node *p,*q;p=head->next;head->next=NULL;q=p->next;while(p!=NULL){p->next=head->next;head->next=p;p=q;if(q!=NULL)q=q->next;}}int main(){struct node *p;head=creat();revers();p=head->next;while(p!=NULL){if(p->next==NULL)printf("%d\n",p->data);elseprintf("%d ",p->data);p=p->next;}return 0;}
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: