数据结构实验之链表三:链表的逆置
来源:互联网 发布:ubuntu 图形界面 编辑:程序博客网 时间:2024/06/05 17:30
Problem Description
输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。
Input
输入多个整数,以-1作为结束标志。
Output
输出逆置后的单链表数据。
Example Input
12 56 4 6 55 15 33 62 -1
Example Output
62 33 15 55 6 4 56 12
Hint
不得使用数组。
#include <bits/stdc++.h>using namespace std;struct node{ int data; struct node *next;}*head,*p,*tail;void reverse(struct node* head){ 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(){ head=new node; tail=head; head->next=NULL; while(1) { p=new node; cin>> p->data; if(p->data==-1) break; p->next=NULL; tail->next=p; tail=p; } reverse(head); p=head; while(p->next!=NULL) { p=p->next; cout<<p->data<<" "; } return 0;}
#include <stdio.h>#include <stdlib.h>struct node{ int data; struct node *next;}*head,*tail,*p,*q;int main(){ head=(struct node*)malloc(sizeof(struct node)); head->next=NULL; tail=head; while(1) { p=(struct node*)malloc(sizeof(struct node)); scanf("%d",&p->data); if(p->data==-1) break; p->next=NULL; tail->next=p; tail=p; } 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=p->next; } } p=head->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } return 0;}
#include <stdio.h>#include <stdlib.h>struct node{ int data; struct node *next;}*head,*tail,*p,*q;void reverse(struct node *head)//逆置函数{ 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=p->next;//p后边的next还存在 再后移 } }}int main(){ head=(struct node*)malloc(sizeof(struct node)); head->next=NULL; tail=head; while(1) { p=(struct node*)malloc(sizeof(struct node)); scanf("%d",&p->data); if(p->data==-1) break; p->next=NULL; tail->next=p; tail=p; } reverse(head); p=head->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } return 0;}
0 0
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 【2118】数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- OJ 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 数据结构实验之链表三:链表的逆置
- 洛谷1540 机器翻译
- Android Studio NKD开发之 FFmpeg库的引入--简单播放器(主要验证是否正确引入ffmpeg库)
- 我的代码
- L0,L1,L2范式的区别和应用
- 公用标题栏(TitleBar)
- 数据结构实验之链表三:链表的逆置
- opensuse13.2 plt.show不能显示图片问题
- CentOS7安装Redis
- Deform二次开发入门
- 使用synergy实现鼠标和键盘在两台机器间的共享
- 子div撑不开父div的几种解决方法
- RecyclerView的点击事件
- 【spring注解解析】@RequestBody,@ResponseBody
- stickup效果的实现