题目:设有一个带头结点的单链表,其节点均为正值,设计一个算法,反复找出单链表中最小值输出并删除,直到单链表为空,最后删除头结点
分析:
        按照以往的经验,我们需要遍历它,为了保证不断链,我们需要设置pre,p,minPre,min,r等5个指针。

代码如下:

struct Link {int data;struct Link *next;
};
#include <stdlib.h>
#include <stdio.h>
void inputAndDeleteLink(Link *h) {struct Link *pre = h, *minPre = h, *p = h->next, *min = h->next, *r;while (h->next) {//如果头结点后面还有值,说明未结束while (p) {//寻找最小值if (min->data>p->data) {minPre = pre;min = p;}pre = p;p = p->next;}printf("%d ",min->data);r = min->next;minPre->next = min->next;//删除当前最小值free(min);//释放节点空间p = h->next;//又重头开始遍历pre = h;minPre = h;min = h->next;}free(h);//最后释放头结点
}
int main() {struct Link *head;Link *createLink();//封装好的创建单链表函数head = createLink();inputAndDeleteLink(head);return 0;
}

 学到很多东西的'诀窍,就是一下子不要学很多。

单链表输出最小值并逐个删除相关推荐

  1. SDUT_2122 数据结构实验之链表七:单链表中重复元素的删除

    提交代码 数据结构实验之链表七:单链表中重复元素的删除 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Proble ...

  2. 数据结构实验之链表七:单链表中重复元素的删除

    Description 按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个). Input 第一行输入元素个数 n (1 <= n &l ...

  3. 7-6 数据结构实验之链表七:单链表中重复元素的删除 (20 分)

    按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个). 输入格式: 第一行输入元素个数 n (1 <= n <= 15): 第二行 ...

  4. python链表删除尾部节点_python单链表中如何查找和删除节点?

    在之前的文章[python单链表中如何插入和输出节点?]中给大家介绍了单链表是什么,以及如何进行添加节点.输出所以节点.下面本篇文章给大家介绍如何查找和删除节点,希望对大家有所帮助. 如何从单链表中查 ...

  5. java单链表输出_数据结构基础------1.线性表之单链表的创建与输出方法(Java版)...

    基础知识: 线性表(linear list),是其组成元素间具有线性关系的一种线性结构. 线性表有 ①顺序存储结构(sequential storage structure) 顺序存储结构可以简单的理 ...

  6. 单链表的基本操作---插入,删除,交,并,相邻元素的交换等

    这个链表是带有表头的单链表.实现链表的一些规范操作,初始化,插入,删除等.包括两个头文件list.h,fatal.h,库函数list.c,测试函数testlist.c.头文件放的都是函数声明,库函数l ...

  7. 单链表输出倒数第k个元素

    这个算法已经有不少人写过了,但是为了考研后期复习还是在此记录一下自己的心得. 方法有如下几种: 1. 遍历单链表两次,第一次获取链表总长度,第二次寻找倒数第K个元素就很简单了.但是该方法需要遍历两次链 ...

  8. c语言单链表输出26英文字母,C语言单链表的实现

    单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素. 链表结构: SList.h #pragma once typedef int DataType; typedef st ...

  9. 算法设计 删除无序单链表中的值域重复的结点

    删除无序单链表中的值域重复的结点 题目: 有一个带头结点的单链表head,其中可能出值域重复的结点,设计一个算法删除值域重复的结点.要求在主函数中调用设计的算法,给出结果. 思路:删除某个结点值的重复 ...

最新文章

  1. firefox下几个实用的免费开发插件
  2. 如何制作python代码_如何使用50行Python代码制作一个计算器
  3. java 编程思想 笔记_java编程思想笔记20170215
  4. arcgis 字段计算器 条件赋值_【教程】ArcGIS入门教程(11)——多条件购房分析...
  5. 对数学本质特征的若干认识
  6. x264 的 cache详解
  7. 这些学霸的作息表“曝光”,太震撼了,快来找差距!
  8. 经验 | 计算机视觉顶会上的灌水文都有哪些特征?
  9. pycharm 怎么快速生成文件夹结构_为什么Python代码能运行但是PyCharm给我画红线?...
  10. 查询出两个表中不同的数据
  11. python requests下载zip文件_python requests 下载zip包
  12. 谷歌地图地名显示繁体字_谷歌地图怎么把字去掉
  13. RS-232通信接口
  14. Python 代码库之Tuple如何append添加元素
  15. 土拍熔断意味着什么_美股熔断到底是什么?又意味着什么?
  16. Windows安全加固系列---日志配置操作
  17. Microsoft Word 教程「4」,如何在 Word 中应用样式、主题?
  18. 计算机按键 shift的作用,电脑shift键的十一个妙用
  19. 程序员成长之路(一)
  20. 一、降维——机器学习笔记——降维(特征提取)

热门文章

  1. JavaScript设计模式(一)-- 简单工厂模式
  2. 7.6 T1 深度优先搜索(dfs)
  3. HBuilder 模拟器
  4. 读《人月神话》有感2
  5. shutil——高级的 文件、文件夹、压缩包 处理模块
  6. (小技巧)Sql server查看sql语句的执行时间(转)
  7. TCP/IP详解 笔记九
  8. 分享我的学习方法——还是坚持+努力
  9. MySQL_数据类型
  10. JQuery源码笔记jQuery.access研究学习(13)