数据结构实验之链表三:链表的逆置
2019-01-18 19:58
92 查看
Problem Description
输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。
Input
输入多个整数,以-1作为结束标志。
Output
输出逆置后的单链表数据。
Sample Input
12 56 4 6 55 15 33 62 -1
Sample Output
62 33 15 55 6 4 56 12
Hint
不得使用数组。
Source
#include <stdio.h> #include <stdlib.h> struct lqc//构建结构体 int data; struct lqc *next; }; int main() { int n; struct lqc *head,*tail,*p,*q;//四个指针!!!!!! head=(struct lqc*)malloc(sizeof(struct lqc));//分配空间 head->next=NULL;//头指针指向空白NULL tail=head;//尾指针,常用于顺序建立指针 while(7)//这个判断语句为随机的一个正数!为了使循环进行下去!!循环中有break可以跳出循环 { scanf("%d",&n); if(n==-1) { break;//此时即可跳出循环 } p=(struct lqc*)malloc(sizeof(struct lqc));//分配空间(注意书写格式) p->data=n;//p的数值为n p->next=tail->next;//p-》next此时发生改变,指向NULL tail->next=p;//此时head-》next指向p tail=p;//tail尾指针发生改变,向前移动 } p=head->next; q=p->next; head->next=NULL;//这三行为循环前的操作!! while(p!=NULL)//循环判断 { q=p; p=p->next; q->next=head->next; head->next=q;//这一循环变化过程比较容易搞混,建议画出图,第二次循环为发生重大变化的时期!! } p=head->next;//输出前的操作 printf("%d",p->data);//输出第一个前边没有空格 p=p->next;//p向前移动!! while(p)//表示当p不是NULL时循环继续 { printf(" %d",p->data); p=p->next; } printf("\n");//注意最后的换行符号 return 0; }
相关文章推荐
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 【2118】数据结构实验之链表三:链表的逆置
- 2118 数据结构实验之链表三:链表的逆置
- 暑假集训第1天链表-数据结构实验之链表三:链表的逆置
- SDUT OJ 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置 (sdut oj)
- SDUT 2118数据结构实验之链表三:链表的逆置
- SDUT_2118 数据结构实验之链表三:链表的逆置
- SDUTOJ 2118数据结构实验之链表三:链表的逆置
- sdut.acm2012级《程序设计基础Ⅱ)》_链表 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置 SDUT
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置