带头结点的单链表逆置

  • 题目要求
  • 单链表结点定义
  • 函数接口定义
  • 测试程序样例
  • 输入样例
  • 输出样例
  • 答案

题目要求

设计算法Reverse( ),将带头结点的单链表A逆置,要求利用原有链表的链点,最后输出原单链表和逆置后的单链表。

单链表结点定义

定义如下:

typedef int DataType;
typedef struct Node
{DataType data;      // data域用于存储数据元素struct Node *next;  // next域用于存放指向其后继的指针
}LNode, *PNode, *LinkList;  // LinkList为头指针

函数接口定义

函数接口如下:

void Reverse( LinkList *a );

*a是原单链表的头指针。

测试程序样例

#include <stdio.h>
int InitLinkList(LinkList *head);       /* 初始化链表, 细节在此不表 */
PNode LinkListInsert(LinkList h, int pos, DataType x)    ;   /* 向链表插入新元素,返回新插入链点的指针,细节在此不表 */
void TraverseLinkList(LinkList h);   /* 遍历单链表,细节在此不表 */
void DestroyLinkList(LinkList h);    /* 销毁单链表,细节在此不表 */void Reverse( LinkList *a );     /* 本题要求函数 */
int main()
{LinkList h;DataType x;char ch;int pos = 1;InitLinkList(&h);do{scanf("%d",&x);LinkListInsert( h , pos++ , x );}while((ch=getchar())!='\n');printf("单链表A是\n");TraverseLinkList( h );        Reverse( &h );printf("就地逆置后的单链表为\n");TraverseLinkList( h );DestroyLinkList( h );return 0;
}/* 请在这里填写答案 */

输入样例

在这里给出一组输入。例如:

11 22 33 44 55 66 77 88 99

输出样例

在这里给出相应的输出。例如:

单链表A是
11 22 33 44 55 66 77 88 99
就地逆置后的单链表为
99 88 77 66 55 44 33 22 11

答案

void Reverse(LinkList *a)
{PNode A = *a;         //头结点PNode p = A->next;     //p指针初始放在头结点后一位PNode r = NULL;         //A->next = NULL;           //头结点后继结点置空while (p != NULL)       //p指针后移的同时,用头插法将该链点挂在头指针后面,达到逆置效果{r = p->next;        //后继结点p->next = A->next;  //p节点继承A的后继A->next = p;        //将p结点插入到头结点之后p = r;              //p后移}
}

数据结构学习中,个人笔记,仅供参考
如有错误,烦请指正
参考视频: 【LinkList10-带头结点的单链表的逆置】

单链表操作10-带头结点的单链表逆置(个人学习笔记,仅供参考)相关推荐

  1. 数据结构c/c++ 头插法尾插法建立带头结点的单链表,以数组创建带头结点的单链表和不带头结点的单链表,输出打印单链表

    // // Created by 焦娇 on 2021/9/17. //#ifndef CHAPTER2_LINELINK_LLK_H #define CHAPTER2_LINELINK_LLK_H# ...

  2. java带头结点的单链表_java编写带头结点的单链表

    /*** @ProjectName: JavaPractice * @Package: com.itwang.swordtooffer * @ClassName: LNodeOperation * @ ...

  3. 自考本科 04741 计算机网络原理 2022年10月真题以及答案(自己做的,仅供参考)

    04741 计算机网络原理 202210 单选 1. 在网络协议的三个基本要素中,"语义"定义的是实体之间() 2. 以"所需电缆长度短,可以使用光纤,易于避免冲突&qu ...

  4. c语言实现--不带头结点的单链表操作

    1,不带头结点的单链表操作中,除了InitList(),GetElem(),ListInsert(),ListDelete()操作与带头结点的单链表有差别外,其它的操作基本上一样. 2,不带头结点单链 ...

  5. 2.3 带头结点的单链表:理论+编程实战(C语言详细)

    1.顺序存储:线性表/栈/队列:理论+C语言实现–详细 2.1 链式存储概述 和 2.2 线性表的链式存储–单链表(C语言详细实现) 文章目录 2.3 带头结点的单链表 1. 带头结点的单链表基本概念 ...

  6. 不带头结点的单链表操作

    不带头结点的单链表操作,包括插入.遍历.统计结点数等,要求写出数据结构算法思想及C语言实现函数 本文为博主原创文章,未经博主允许不得转载. 版权为陈博超所有,第一次于2021年06月22日发表于BLO ...

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

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

  8. python实现带头结点的单链表的就地逆置_6-1 带头结点的单链表就地逆置 (10 分)...

    本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数.L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要求在不新开辟节点的前提下将单链表中的元素进行逆置 ...

  9. 带头结点的单链表的操作(C语言)

    初始化 先了解头结点 头结点是一个特殊的结点,它的数据域不存储信息,通常情况下,头指针指向的结点为头结点,由于头结点不存储信息,所以不是数据结构中的实际结点,第一个实际结点其实是head->ne ...

最新文章

  1. squid中的X-Cache和X-Cache-Lookup的意义
  2. I00031 Look-and-say sequence
  3. docker 配置加速器
  4. Java基础:JVM垃圾回收算法
  5. 大学python搜题app_2021年中国大学MOOC的APP用Python玩转数据答案搜题公众号
  6. oracle dba_waiters中的lockid是什么,查杀oracle lock session and table
  7. mysql hdfs_MySQL数据库与HDFS的实时数据同步
  8. 电商场景下,如何处理消费过程中的重复消息?
  9. 毕业四年换了3份软件测试工作,我为何仍焦虑?
  10. 资料员考试题库计算机,资料员考试试题库及答案(5套).docx
  11. 蚂蚁金服一面二面试题及答案,职位Java高级工程师
  12. bootstrap 模态框无法使用_22 模态框Modal教程(plotly Dash Bootstrap版)
  13. 日立hgp电梯mcub03主板原理图
  14. 基于开源飞控系统和安卓系统的4g5g物联网无人机实现
  15. 【完结!】数据挖掘从入门到放弃(五)seaborn 的数据可视化
  16. Deep Learning 最优化方法之Momentum(动量)
  17. Android studio中使用百度地图
  18. AMR文件怎么存储的
  19. 分区表中GLO字段对信息收集的影响
  20. shell 小米system锁adb_忘记锁屏密码不用怕?支招小米手机解锁四种简单常用的方法...

热门文章

  1. vue 加密手机号(过滤器)
  2. 学计算机专业用微软和华为xpro,全新苹果MacBook Pro对比华为X Pro 两者到底选谁?...
  3. 优酷视频分享链接自适应屏幕的方法
  4. JDK17 || JDK 8 完美 卸载 教程 (Windows版)
  5. ​ ​专业的电脑音频录音工具哪个好用,怎么录音
  6. Java基础入门(3)
  7. TX Text Control.NET 14破解
  8. 华为或首次成为年度销量第二大手机品牌,明年将迎来更大挑战
  9. 微信公众平台api下载php,微信公众平台消息接口PHP版
  10. 解决win10系统,U盘插入电脑有声音但不显示