本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数。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. (不带头结点的)单链表增删查改,逆置单链表(两种方法),求两个单链表的第一个公共结点,合并两个单链表,单循环链表中判断第一个入环点,约瑟夫环

    补充了每个算法的基本思想,并且画了思路图,源代码都经过调试成功 1.SlistNode.c文件 (1) (不带头结点的)单链表增删查改 #include "SlistNode.h" ...

  2. java带头结点的单链表_自己实现集合框架 (五): 带头结点单链表的实现

    这是系列文章,每篇文章末尾均附有源代码地址.目的是通过模拟集合框架的简单实现,从而对常用的数据结构和java集合有个大概的了解.当然实现没有java集合的实现那么复杂,功能也没有那么强大,但是可以通过 ...

  3. PTA 6-8 求单链表表长 (10 分)本题要求实现一个函数,Length_LinkList(LinkList L)函数是求出带头结点单链表的长度。

    6-8 求单链表表长 (10 分) 本题要求实现一个函数,Length_LinkList(LinkList L)函数是求出带头结点单链表的长度. 函数接口定义: int Length_LinkList ...

  4. 6-1 带头结点的单链表就地逆置 (10 分)

    6-1 带头结点的单链表就地逆置 (10 分) 本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数.L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要 ...

  5. java带头节点的单链表_自己实现集合框架(五):带头结点单链表的实现

    这是系列文章,每篇文章末尾均附有源代码地址.目的是通过模拟集合框架的简单实现,从而对常用的数据结构和java集合有个大概的了解.当然实现没有java集合的实现那么复杂,功能也没有那么强大,但是可以通过 ...

  6. 带头结点的单链表删除操作 (10 分)

    本题要求实现删除单链表的第i个元素结点,删除成功返回1,否则返回0. 函数接口定义: int delete_link ( LinkList L,int i); L为单链表的头指针,i为删除结点的序号. ...

  7. python 单链表是否有回路_第5章 第1节 链表

    ● 请你说出几种基本的数据结构, 参考回答: 常见的基本的数据结构有链表.栈.队列.树(只列出面试常考的基本数据结构) 1.链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链 ...

  8. 单链表实现增删改查(含头结点)

    ** 单链表实现增删改查(含头结点) ** **## 单链表** package com.Linked;public class HeadLinked {public String name;// 链 ...

  9. c语言中头结点不为零怎么写,C语言不带表头结点的单链表操作

    什么是链表 简单理解为链表的功能与数组功能相似用来存储数据,链表作为一种基本的数据结构在程序开发过程当中经常会使用到.对C语言来说链表的实现主要依靠结构体(可以存储多种数据类型)和指针,所以本文相关内 ...

  10. 单链表实现一元多项式相加_python面试系列 01如何实现单链表的逆序

    题目介绍 来源:腾讯笔试                         难度系数:★★★☆☆                  考察频率:★★★★☆ 题目描述: 给定一个带头结点的单链表,请将其逆序 ...

最新文章

  1. python 删除 csv 文件的行
  2. 使用HttpWebRequest请求API接口以及其他网站资源
  3. 首届中国IT架构大师高峰论坛(十年架构之路汇成一句话!)
  4. php内部常量_PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
  5. java 爬虫_Java原生代码实现爬虫(爬取小说)
  6. MathType与Origin是怎么兼容的
  7. bilibili里的硬币有什么用 硬币的作用详细介绍
  8. 在Recyclerview使用GlideAPP加载大量图片导致内存溢出(oom)
  9. CoreData的用法
  10. ANSI-美国国家标准学会
  11. #低码系列#如何设计一个低代码平台?
  12. Mac恢复系统更新命令
  13. R语言数据分析笔记——Cohort 存留分析
  14. 数据中心的等级 数据中心的分层
  15. Robocup2D入门笔记(2)——环境的配置与安装
  16. MTD系列 - 关于linux MTD的一些理解
  17. 003.小插曲之变量和字符串
  18. github上开源iot物联网云平台thingsboard项目,将前段打包成app的方法研究
  19. Hbuilder工具的一些问题
  20. android 的由来,Android的词源_Android的由来_同根词_同源词_趣词词源字典

热门文章

  1. 【转载】大规模网站架构实战之体系结构
  2. 关于#include头文件问题
  3. 锁屏面试题百日百刷-CSS篇(一)
  4. 修改了xml要不要重新起服务器,关于设置:Eclipse每次运行项目时都会修改server.xml(运行-在服务器上运行)...
  5. php软件开发--memcache缓存内存对象分布式系统
  6. python随机生成奇数_python实现按照给定范围随机生成小数,偶数,奇数,整数,正态分布,均匀分布数据以及图片...
  7. 微软批量许可 开放许可区别_网络漫画因开放许可而适用于动画
  8. jsoup爬虫技术精通_精通业务的同时保持技术的3种方法
  9. (14)Node.js 核心模块—http
  10. 前端:常用单词(JS,CSS,HTML)