python实现带头结点的单链表的就地逆置_6-1 带头结点的单链表就地逆置 (10 分)...
本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数。L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要求在不新开辟节点的前提下将单链表中的元素进行逆置,如原单链表元素依次为1,2,3,4,则逆置后为4,3,2,1。
函数接口定义:
void ListReverse_L(LinkList &L);
其中 L是一个带头结点的单链表。
裁判测试程序样例
//库函数头文件包含
#include
#include
#include
//函数状态码定义
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef int ElemType; //假设线性表中的元素均为整型
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
Status ListCreate_L(LinkList &L,int n)
{
LNode *rearPtr,*curPtr; //一个尾指针,一个指向新节点的指针
L=(LNode*)malloc(sizeof (LNode));
if(!L)exit(OVERFLOW);
L->next=NULL; //先建立一个带头结点的单链表
rearPtr=L; //初始时头结点为尾节点,rearPtr指向尾巴节点
for (int i=1;i<=n;i++){ //每次循环都开辟一个新节点,并把新节点拼到尾节点后
curPtr=(LNode*)malloc(sizeof(LNode));//生成新结点
if(!curPtr)exit(OVERFLOW);
scanf("%d",&curPtr->data);//输入元素值
curPtr->next=NULL; //最后一个节点的next赋空
rearPtr->next=curPtr;
rearPtr=curPtr;
}
return OK;
}
void ListReverse_L(LinkList &L);
void ListPrint_L(LinkList &L){
//输出单链表
LNode *p=L->next; //p指向第一个元素结点
while(p!=NULL)
{
if(p->next!=NULL)
printf("%d ",p->data);
else
printf("%d",p->data);
p=p->next;
}
}
int main()
{
LinkList L;
int n;
scanf("%d",&n);
if(ListCreate_L(L,n)!= OK) {
printf("表创建失败!!!\n");
return -1;
}
ListReverse_L(L);
ListPrint_L(L);
return 0;
}
/* 请在这里填写答案 */
输入格式:
第一行输入一个整数n,表示单链表中元素个数,接下来一行共n个整数,中间用空格隔开。
输出格式:
输出逆置后顺序表的各个元素,两个元素之间用空格隔开,最后一个元素后面没有空格。
输入样例:
4
1 2 3 4
输出样例:
4 3 2 1
void ListReverse_L(LinkList &L)
{
LNode *p, *q;
p = q = L->next;//p 和 q一开始都指向第一个节点,p用来赋值,q用来后移
L->next = NULL;
while(p != NULL){
q = q->next;//在p将链表改变前后移
p->next = L->next;//将原链表从头到尾依次加到新链表的第一个位置
L->next = p;
p = q;
}
}
python实现带头结点的单链表的就地逆置_6-1 带头结点的单链表就地逆置 (10 分)...相关推荐
- (不带头结点的)单链表增删查改,逆置单链表(两种方法),求两个单链表的第一个公共结点,合并两个单链表,单循环链表中判断第一个入环点,约瑟夫环
补充了每个算法的基本思想,并且画了思路图,源代码都经过调试成功 1.SlistNode.c文件 (1) (不带头结点的)单链表增删查改 #include "SlistNode.h" ...
- java带头结点的单链表_自己实现集合框架 (五): 带头结点单链表的实现
这是系列文章,每篇文章末尾均附有源代码地址.目的是通过模拟集合框架的简单实现,从而对常用的数据结构和java集合有个大概的了解.当然实现没有java集合的实现那么复杂,功能也没有那么强大,但是可以通过 ...
- PTA 6-8 求单链表表长 (10 分)本题要求实现一个函数,Length_LinkList(LinkList L)函数是求出带头结点单链表的长度。
6-8 求单链表表长 (10 分) 本题要求实现一个函数,Length_LinkList(LinkList L)函数是求出带头结点单链表的长度. 函数接口定义: int Length_LinkList ...
- 6-1 带头结点的单链表就地逆置 (10 分)
6-1 带头结点的单链表就地逆置 (10 分) 本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数.L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要 ...
- java带头节点的单链表_自己实现集合框架(五):带头结点单链表的实现
这是系列文章,每篇文章末尾均附有源代码地址.目的是通过模拟集合框架的简单实现,从而对常用的数据结构和java集合有个大概的了解.当然实现没有java集合的实现那么复杂,功能也没有那么强大,但是可以通过 ...
- 带头结点的单链表删除操作 (10 分)
本题要求实现删除单链表的第i个元素结点,删除成功返回1,否则返回0. 函数接口定义: int delete_link ( LinkList L,int i); L为单链表的头指针,i为删除结点的序号. ...
- python 单链表是否有回路_第5章 第1节 链表
● 请你说出几种基本的数据结构, 参考回答: 常见的基本的数据结构有链表.栈.队列.树(只列出面试常考的基本数据结构) 1.链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链 ...
- 单链表实现增删改查(含头结点)
** 单链表实现增删改查(含头结点) ** **## 单链表** package com.Linked;public class HeadLinked {public String name;// 链 ...
- c语言中头结点不为零怎么写,C语言不带表头结点的单链表操作
什么是链表 简单理解为链表的功能与数组功能相似用来存储数据,链表作为一种基本的数据结构在程序开发过程当中经常会使用到.对C语言来说链表的实现主要依靠结构体(可以存储多种数据类型)和指针,所以本文相关内 ...
- 单链表实现一元多项式相加_python面试系列 01如何实现单链表的逆序
题目介绍 来源:腾讯笔试 难度系数:★★★☆☆ 考察频率:★★★★☆ 题目描述: 给定一个带头结点的单链表,请将其逆序 ...
最新文章
- python 删除 csv 文件的行
- 使用HttpWebRequest请求API接口以及其他网站资源
- 首届中国IT架构大师高峰论坛(十年架构之路汇成一句话!)
- php内部常量_PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
- java 爬虫_Java原生代码实现爬虫(爬取小说)
- MathType与Origin是怎么兼容的
- bilibili里的硬币有什么用 硬币的作用详细介绍
- 在Recyclerview使用GlideAPP加载大量图片导致内存溢出(oom)
- CoreData的用法
- ANSI-美国国家标准学会
- #低码系列#如何设计一个低代码平台?
- Mac恢复系统更新命令
- R语言数据分析笔记——Cohort 存留分析
- 数据中心的等级 数据中心的分层
- Robocup2D入门笔记(2)——环境的配置与安装
- MTD系列 - 关于linux MTD的一些理解
- 003.小插曲之变量和字符串
- github上开源iot物联网云平台thingsboard项目,将前段打包成app的方法研究
- Hbuilder工具的一些问题
- android 的由来,Android的词源_Android的由来_同根词_同源词_趣词词源字典
热门文章
- 【转载】大规模网站架构实战之体系结构
- 关于#include头文件问题
- 锁屏面试题百日百刷-CSS篇(一)
- 修改了xml要不要重新起服务器,关于设置:Eclipse每次运行项目时都会修改server.xml(运行-在服务器上运行)...
- php软件开发--memcache缓存内存对象分布式系统
- python随机生成奇数_python实现按照给定范围随机生成小数,偶数,奇数,整数,正态分布,均匀分布数据以及图片...
- 微软批量许可 开放许可区别_网络漫画因开放许可而适用于动画
- jsoup爬虫技术精通_精通业务的同时保持技术的3种方法
- (14)Node.js 核心模块—http
- 前端:常用单词(JS,CSS,HTML)