将一个链表按逆序排列,即将链头当链尾,链尾当链头。

源程序:

#include <stdio.h>
#include <malloc.h>
#define LEN sizeof(struct student)
struct student
{
 int num;
 struct student* next;
};

int n;

struct student * creat(void)
{
 //struct student* p1,*p2,*head;
 struct student * p1;
 struct student * p2;
 struct student * head;
 p1=p2=(struct student *)malloc(LEN);
 head=NULL;
 n=0;
 printf("请输入学生的学号(输入学号0结束):\n");
 scanf("%d",&p1->num);
 while(p1->num!=0)
 {
  n=n+1;
  if(n==1)
   head=p1;
  else
   p2->next=p1;
  p2=p1;
  printf("请输入学生的学号(输入学号0结束):\n");
  p1=(struct student*)malloc(LEN);
  scanf("%d",&p1->num);
 }
 p2->next=NULL;
 return (head);
}

struct student *nixu(struct student * head)
{
 struct student *s,*t;
 s=head;
 head=NULL;
 while(s)
 {
  t=s;
  s=s->next;
  t->next=head;
  head=t;
 }
 return head;
}

void print(struct student* head,int n)
{
 struct student* p1,*p2,*p3;
 p1=head;
 while(p1!=NULL)
 {
  printf("%d\n",p1->num);
  p1=p1->next;
 }
}

int main()
{
 struct student* head;
 head=creat();
 print(head,n);
 head=nixu(head);
 printf("nixuhou:\n");
 print(head,n);
}

转载于:https://blog.51cto.com/lihaichuan/979557

将一个链表按逆序排列相关推荐

  1. 关于链表的逆序排列!

    关于链表逆序的中心思想就是:  用三个结点指针分别记录,第一个和第二个结点,把第一个结点后指为NULL,由首结点作为尾结点.然后把第二个指向第一个,再然后同 时移动,使第二个结点为第三个结点,第一个结 ...

  2. c语言实现数组中的数据逆序排列

    主函数里面已经定义了数组b及其中的9个数据,然后利用for循环将数组中的数据打印一遍,之后将数组的首地址和数组长度9传给函数fun,函数fun要实现的功能是将数组b中的数据前后置换顺序,即原来的1,2 ...

  3. C语言单向链表的逆序输出

    最近在学习链表,看到书上说可以采取每次在链表头部插入新增节点的方法,将链表逆序,也就是建立的链表节点内容与数据的输入顺序相反.我便来了兴趣,想着试试看,结果没搞懂,于是开始百度.看了几遍博客后终于是明 ...

  4. c语言实现链表的逆序输出,C语言数据结构实现链表逆序并输出

    C语言数据结构实现链表逆序并输出 将一个链表逆序并输出.我用了两种方法来实现,第一种是借助了一个新的空链表:第二种是在原来链表的基础上直接实现逆序. 实例代码: 头文件: #include #incl ...

  5. 【c语言】数组逆序排列

    问题描述 编写一个程序,读入一组整数(不超过20个),并把它们保存在一个整型数组中.当用户输入0时,表示输入结束.然后程序将把这个数组中的值按逆序重新存放,并打印出来.要求:(1)只能定义一个数组:( ...

  6. python【蓝桥杯vip练习题库】ADV-103逆序排列

    试题 算法提高 逆序排列 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 编写一个程序,读入一组整数(不超过20个),并把它们保存在一个整型数组中.当用户输入0时,表示输入结束.然后 ...

  7. 单链表的逆序java_java 实现单链表的逆序

    package com.ckw.mianshi; /** * java 实现单链表的逆序 * @author Administrator * */ public class SingleLinkedR ...

  8. 10.14 将n个数按输入输出顺序的逆序排列,用函数实现

    将n个数按输入输出顺序的逆序排列,用函数实现. #include <stdio.h>int main(){int n,i;void reverse(int * num, int n);pr ...

  9. 字符串按照单词为单位逆序排列

    我们前面已经写过一个简单字符串逆序排序的方法,这里再开一个字符串排序问题: 给定一个字符串"I love China",编写程序完成以单词为单位的逆序,如"China l ...

最新文章

  1. 简评file_get_contents与curl 效率及稳定性
  2. android 设置窗口透明效果,android - 如何将对话框窗口背景设置为透明,而不影响其边距...
  3. SQL中OBJECT_ID,OBJECT_NAME,OBJECT_DEFINITION的用法
  4. 修改dts后重编译_「正点原子FPGA连载」第二十章另一种方式编译ZYNQ镜像
  5. three.js(五) 地形纹理混合
  6. 今天工作中碰到一个clone的问题
  7. transferto遇到的问题java.io.FileNotFoundException: C:\Users\Administrator\AppData\Local\Temp
  8. UGUI- 单列列表(VerticalLayoutGroup)
  9. MPLAB IDE 编译器文件归类整理
  10. FireEye开启IPO大幕
  11. 遍历树,找出所有叶子路径
  12. mysql 表字段信息从一张表迁移到另一张表_Mysql之分库分表
  13. 惊呆了!JDK1.8竟然打破了我对接口的一切认知...
  14. x11获得窗口名的代码
  15. 2022年最新iOS面试题(附答案)
  16. ubuntu大小写切换键的使用
  17. 【老九学堂】【Java】Java环境之JDK配置
  18. bzoj3238 [ AHOI2013 ] --后缀自动机
  19. 在线查看相机快门次数
  20. may have been in progress in another thread when fork() was called.

热门文章

  1. python协程异步原理_简单介绍Python的Tornado框架中的协程异步实现原理
  2. php中自己写的类放哪里,class类 - ThinkPHP 3.2.3,我有一个class,应该放在哪里?
  3. java事件驱动模型_Spring事件驱动模型详解
  4. 对象数组的初始化_JAVA中数组是什么?
  5. arraycopy用法_Java复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan...
  6. android 输入法 suretype,没输入法的年代,黑莓都有哪些经典键盘?
  7. Maven 新版本 3.8.1 打包报错 maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories
  8. 【Netty】大白话 Netty 核心组件分析
  9. 模拟usb重新插拔_Android 10带来黑科技 检测手机USB接口是否有液体或者是否过热...
  10. java 无视报错编译_java 无视报错编译