#include<stdio.h>
#include<stdlib.h>
#define NULL 0 /*宏定义*/
typedef struct node /*定义结点类型的数据结构*/
{char c; /*数据域,类型为字符型*/struct node *next; /*指针域,类型为本结构体类型*/
}Node,*L; /*类型重定义,即Node和*L和struct node等价*/main()
{L l,p,q,r; /*用指针类型定义三个结点类型的指针*/char ch;l=(L)malloc(sizeof(Node)); /*分配内存空间*/l->c='\0'; /*为头结点的数据域赋值,值为空*/l->next=NULL; /*指明下一个结点目前不存在*/q=l; /*q为游动指针,链表结点的连结要用*/printf("Input a character:\n");scanf("%c",&ch);getchar();while(ch!='0') /*输入0表示输入结束*/{p=(L)malloc(sizeof(Node)); /*为新输入的数据分配内存空间*/p->c=ch;p->next=NULL; /*新输入的结点在链表的最后,即它的后面没有其它元素*/q->next=p; /*q用于将上一个元素链接至当前新元素*/q=p; /*q自己移到当前最后一个元素,以备继续链接所用*/scanf("%c",&ch);getchar();}  /*以上完成了单链表的创建*/q=l->next;p=q->next;r=p->next;q->next=NULL;while(r!=NULL){p->next=q;q=p;p=r;if(r->next!=NULL) /*r后面还有结点,则逆置继续*/r=r->next;elsebreak;}r->next=q;l->next=r; //头结点指向最后一个结点q=l; /*输入整个链表前,先将q移到链表头,l一般不动*/while(q->next!=NULL) /*若q所指向的元素后面还有其它元素,则将该元素的数据输出*/{printf("%c-->",q->next->c); /*q->next->c表示q所指向的下一个元素的数据*/q=q->next; /*完成该元素的输出后,q移至下一个元素重复输出操作*/}printf("\n");
}

056.单链表就地逆置相关推荐

  1. java实现单链表就地逆置,单链表的就地逆置讲解

    { List *q; List *p = L->next; L -> next = NULL; //单链表就地逆置 while (p != NULL) { q = p -> next ...

  2. java实现单链表就地逆置,20. 微软面试题:单链表就地逆放

    题目是:链表操作,单链表就地逆置 分析: 这题只需要设置三个指针就搞定了,ListNode* p 表示当前指针, ListNode* fp: 上一个节点指针, ListNode * ep :下一个节点 ...

  3. 【AU】单链表就地逆置

    单链表就地逆置 单链表的就地逆置是指辅助空间O(1)的逆置方法,有两种方法: 第一种 普通循环(头插法重新建立带头节点的新链表) 将头结点摘下,然后从第一结点开始,依次前插入到头结点的后面(头插法), ...

  4. 带头结点单链表就地逆置算法

    1.带头结点单链表就地逆置算法 部分函数调用参考如下:https://blog.csdn.net/qq_50504109/article/details/120288749 /*** 单向链表的逆置, ...

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

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

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

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

  7. 单链表就地逆置(Java版)

    题目:有一个线性表(a1,a2,a3,...,an),采用带头节点的单链表L存储,设计一个算法将其就地逆置,线性表变为(an,...a3,a2,a1).所谓"就地"指辅助存储空间为 ...

  8. 链表就地逆置Java_单链表就地逆置(Java版)

    题目:有一个线性表(a1,a2,a3,...,an),采用带头节点的单链表L存储,设计一个算法将其就地逆置,线性表变为(an,...a3,a2,a1).所谓"就地"指辅助存储空间为 ...

  9. python实现带头结点的单链表的就地逆置_带头结点的单链表就地逆置

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

最新文章

  1. js中的apply()、call() 和 bind()
  2. 【错误记录】Google Play 上架报错 ( 此版本不符合 Google Play 关于提供 64 位版本应用的要求 )
  3. 初学SpringMVC,使用MVC进行文件上传
  4. PHP学习:字符串操作和正则表达式
  5. 云南计算机一级没有开考吗,2020年3月云南计算机一级考试时间
  6. firefox安装adobe flash插件
  7. LeetCode 21. 合并两个有序链表 golang
  8. 一个完整的数据分析体系,该长啥样?
  9. 结合webpack配置_呕心沥血编写的webpack多入口零基础配置 【建议收藏】
  10. windows中python虚拟环境_Windows下Python虚拟环境的配置
  11. java jacob pdf_java利用jacob将word转pdf
  12. 邮件服务器潜在漏洞的保护方法
  13. 2018毕业设计需求分析
  14. 用计算机如何算瓷砖菱形加工,瓷砖菱形铺贴怎么计算面积
  15. 【清橙A1339】JZPLCM(顾昱洲) (树状数组)
  16. 小学语文历史重点名人以及解析大全
  17. 伊甸园日历游戏 c语言,HDU2149-Good Luck in CET-4 Everybody!(博弈,打表找规律)
  18. 在阿里云ECS服务器上使用NextCloud+Aria2+AriaNg部署下载站
  19. 2018-8-10-WPF-使用-VisualStudio-2017-项目文件
  20. android自动拨号 代码,在Android上,是否有一种方法可以强行自动自动拨号?_android_开发99编程知识库...

热门文章

  1. No MTA installed, discarding output错误排查与处理(Ubuntu16定时任务的使用)
  2. 结构化思维的训练方式
  3. mac charles网页代理https使用笔记
  4. 2.try(){}语法含义及用法
  5. 程序设计——第七周作业(Floyd:胜负未知场数;dijkstra:猫猫快线最快线路;SPFA:城市收税)
  6. 利用 Andorid 手机连接 Arduino 并控制 LED灯开关
  7. 公关作用下的品牌建设
  8. 计算机软件在生物学应用,计算机辅助教学软件在生物教学中的应用
  9. 【Pytorch】基于卷积神经网络实现的面部表情识别
  10. Ubantu18.04