逆转线性链表的算法c语言,pta-数据结构与算法题目集(中文)-4-1-单链表逆转...
本题要求实现一个函数,将给定的单链表逆转。
函数接口定义:
List Reverse( List L );
其中List结构定义如下:
typedef struct Node *PtrToNode;
struct Node {
ElementType Data; /* 存储结点数据 */
PtrToNode Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */
L是给定单链表,函数Reverse要返回被逆转后的链表。
裁判测试程序样例:
#include
#include
typedef int ElementType;
typedef struct Node *PtrToNode;
struct Node {
ElementType Data;
PtrToNode Next;
};
typedef PtrToNode List;
List Read(); /* 细节在此不表 */
void Print( List L ); /* 细节在此不表 */
List Reverse( List L );
int main()
{
List L1, L2;
L1 = Read();
L2 = Reverse(L1);
Print(L1);
Print(L2);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
5
1 3 4 5 2
输出样例:
1
2 5 4 3 1
code:
#include
#include
typedef int ElementType;
typedef struct Node *PtrToNode;
struct Node {
ElementType Data;
PtrToNode Next;
};
typedef PtrToNode List;
List Read(); /* 细节在此不表 */
void Print( List L ); /* 细节在此不表 */
List Reverse( List L );
int main()
{
List L1, L2;
L1 = Read();
L2 = Reverse(L1);
Print(L1);
Print(L2);
return 0;
}
List Read(){
int len = 0;
int num = 0;
PtrToNode list = NULL;
PtrToNode last = NULL;
scanf( "%d",&len );
if( 0 == len ){
return NULL;
}
scanf( "%d",&num );
list = ( PtrToNode )malloc( sizeof( struct Node ) );
list->Data = num;
list->Next = NULL;
last = list;
len--;
while( len > 0 ){
scanf( "%d",&num );
PtrToNode node = ( PtrToNode )malloc( sizeof( struct Node ) );
node->Data = num;
node->Next = NULL;
last->Next = node;
last = node;
len--;
}
return list;
}
void Print( List L ){
if( NULL == L ){
return ;
}
PtrToNode last = L;
while( NULL != last ){
printf( "%d ",last->Data );
last = last->Next;
}
putchar( '\n' );
}
List Reverse( List L ){
if( NULL == L ){
return NULL;
}
PtrToNode listre = NULL;
PtrToNode t = L->Next;
if( NULL == t ){
listre = L;
return listre;
}
L->Next = t->Next;
listre = t;
t->Next = L;
while( NULL != L->Next ){
t = L->Next;
L->Next = t->Next;
t->Next = listre;
listre = t;
}
return listre;
}
逆转线性链表的算法c语言,pta-数据结构与算法题目集(中文)-4-1-单链表逆转...相关推荐
- c语言递增20,2020-07-20(C语言)数据结构-在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素...
//在一个递增有序的线性表中,有数值相同的元素存在.若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素,例如:(7,10,10,21,30,42,42,51,70)将变为(7,10 ...
- 在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法,去掉数值相同的元素,使得表中不再有重复的元素。
在一个递增有序的线性表中,有数值相同的元素存在.若存储方式为单链表,设计算法,去掉数值相同的元素,使得表中不再有重复的元素.例如(7,10,10,21,30,42,42,42,51,70)将变为(7, ...
- 13:Scala语言的数据结构和算法
第十九章 Scala语言的数据结构和算法 19.1 数据结构(算法)的介绍 数据结构的介绍 1.数据结构是一门研究算法的学科,只从有了编程语言也就有了数据结构.学好数据结构可以编写出更加漂亮.更加 ...
- 大数据技术之_16_Scala学习_13_Scala语言的数据结构和算法_Scala学习之旅收官之作
大数据技术之_16_Scala学习_13 第十九章 Scala语言的数据结构和算法 19.1 数据结构(算法)的介绍 19.2 看几个实际编程中遇到的问题 19.2.1 一个五子棋程序 19.2.2 ...
- 数据结构上机实践第四周项目2 - 建设“单链表”算法库
项目2 - 建设"单链表"算法库 本次实践的目的以多文件组织的形式建设"单链表算法库",以便在后续的工程中使用. 文中的多文件组织方式不再细说,可以点击此处参照 ...
- 算法java语言描述_java语言描述数据结构与算法崔笑颜的博客
java语言描述数据结构与算法崔笑颜的博客 冒泡排序 插入排序 选择排序 希尔排序 快速排序 归并排序 二分查找package com.demo.test; import java.util.Arra ...
- PTA数据结构与算法题目集6-4 6-3 6-8
PTA数据结构与算法题目集(中文) 6-4 链式表的按序号查找 ElementType FindKth( List L, int K ){int index = 0;while(L){++index; ...
- PTA数据结构与算法题目集 6-9 二叉树的遍历
PTA数据结构与算法题目集(中文) 6-9 二叉树的遍历 void InorderTraversal( BinTree BT ){if(BT==NULL)return;if(BT->Left){ ...
- 题目:代码实现判断单链表是否有环
一.单链表环的定义: 有环的定义是,链表的尾节点指向了链接中间的某个节点.比如下图,如果单链表有环,则在遍历时,在通过结点J之后,会重新回到结点D. 题目:0.如何判断单链表里面是否有环? 算法的思想 ...
- 【大厂算法系列】学数据结构与算法有用吗?时间与空间复杂度的定义与计算
专栏地址:[大厂算法系列] 专栏内容: 数组,列表,栈,队列,树,哈希表,字符串,堆,查找,排序,DFS,BFS,回溯,贪心,动态规划等+力扣大厂真题 算法交流: V [yopa66] 大厂算法 为什 ...
最新文章
- 阿里云免费开放一切AI算力,加速新型冠状病毒新药和疫苗研发
- 在元素前面添加一个伪元素下边框
- Leetcode 344. 反转字符串 (每日一题 20210812)
- 2015-03-17 current note creation logic in my task
- 史上最全的stm32资料库4---常见问题及编译工具篇
- CF1550D Excellent Arrays(完全会了更新)
- met40如何升级成鸿蒙系统,再见了,EMUI11!你好,华为鸿蒙!
- 你以为环幕屏就结束了?真正的小米MIX 4或下月发布:1亿像素相机加持
- android prgoressBar setProgressDrawable 在4.0系统式正常,在2.3系统上不能正常使用的问题...
- hibernate官网文档
- 往年报名破千人,南京大学计算机系2022年夏令营来袭
- 「魔兽世界怀旧服」衣米魔兽怀旧服玩家年度实物礼品发放
- Chrome浏览器清除cookies方法
- Excel如何将一列数据转为一行
- Postman接口测试自动化介绍
- 2022年十大汽车行业新闻
- 如何快速更改电脑ip地址【图文教程】?
- Django创建加法计算器
- python实现守护进程_Python如何实现守护进程的方法示例
- HTML怎么像是下划线、穿越文字的横线以及上划线
热门文章
- 使用GoLang开发游戏服务器(一)
- 免费可商用的音乐资源
- 揭秘苹果应用审核团队(史上最全版)
- mbp touchbar设置_macbookpro touchbar 怎么添加锁屏快捷键
- 【excel】QUARTILE.EXC V.S. QUARTILE.INC
- ps懒人一键智能AI磨皮插件 去除皮肤瑕疵
- 计算机不能连接网络适配器,网络适配器显示未连接的解决方法图文教程
- ppt图片特效 c语言实现,用了这么久的PPT,才知道PPT可以一键生成特效图片!太好看了...
- springboot bootcdn使用
- AkShare-期货数据-连续合约数据,2010年的IFO怎么获取呢?