如何按字段之一对结构链接列表进行排序?

2023-12-01

哇现在我知道我不知道。哈哈。

我的结构是这样的:

struct Medico{ 
int Id_Doctor;
int Estado;
char Nombre[60]; ////focus on this part of the structure, this is name.
char Clave_Acceso[20];
char Especialidad[40];
struct Medico *next;
};

我想根据名称(字母顺序)组织结构。关于如何解决这个问题有什么想法吗?

例如

Albert Haynesworth
Bob Marley
Carl Johnson

非常感谢您。 :)(C,Unix)


在 C 中通过链表实现归并排序非常简单:

#include <string.h>
#include <stdlib.h>
#include <stdio.h>

struct node {
    struct node *next;
    char *data;
};

struct node *
divlist (struct node *n) {
    int i = 0;
    if (n) {
        struct node *tail, *n2 = n;
        while (1) {
            n2 = n2->next;
            if (!n2) break;
            if (i++ & 1) n = n->next;
        }
        tail = n->next;
        n->next = NULL;
        return tail;
    }
    return NULL;
}

struct node *
mergelists(struct node *a, struct node *b) {
    struct node *n;
    struct node **last = &n;
    if (!a) return b;
    if (!b) return a;

    while (1) {
        if (strcmp(a->data, b->data) > 1) {
            *last = b;
            last = &b->next;
            b = b->next;
            if (!b) {
                *last = a;
                break;
            }
        }
        else {
            *last = a;
            last = &a->next;
            a = a->next;
            if (!a) {
                *last = b;
                break;
            }
        }
    }
    return n;
}

struct node *
sortlist (struct node *n) {
    struct node *tail = divlist(n);
    if (!tail) return n;
    return mergelists(sortlist(n), sortlist(tail));
}

int main(int argc, char *argv[]) {
    int i;
    struct node *n1, *n = NULL;
    for (i = argc; --i >= 1;) {
        n1 = (struct node *)malloc(sizeof(*n1));
        n1->data = argv[i];
        n1->next = n;
        n = n1;
    }

    n1 = n = sortlist(n);

    while (n1) {
        printf("%s\n", n1->data);
        n1 = n1->next;
    }
    return 0;
}

请注意,您必须修改此代码才能使用您的数据结构和正确的比较!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何按字段之一对结构链接列表进行排序? 的相关文章

  • 在 Vulkan 中,图形队列系列与当前队列系列分离是否有益?

    据我所知 队列系列可能支持呈现到屏幕但不支持图形 假设我有一个同时支持图形和呈现的队列系列 以及另一个仅支持呈现的队列系列 我应该为两个进程使用第一个队列系列 还是应该将第一个队列系列委托给图形 将后者委托给呈现 或者这两种方法之间没有明显
  • 与 for_each 或 std::transform 一起使用时,如何调用 C++ 函子构造函数

    我以前从未使用过 C 函子 所以我只是想了解它们是如何工作的 例如假设我们有这个函子类 class MultiplyBy private int factor public MultiplyBy int x factor x int ope
  • 静态构造函数和 BeforeFieldInit?

    如果类型没有静态构造函数 则将执行字段初始值设定项 就在使用该类型之前 或者在某个时间点突发奇想 运行时 为什么这段代码 void Main start Dump Test EchoAndReturn Hello end Dump clas
  • 在 C++ 代码中转换字符串

    我正在学习 C 并开发一个项目来练习 但现在我想在代码中转换一个变量 字符串 就像这样 用户有一个包含 C 代码的文件 但我希望我的程序读取该文件并插入将其写入代码中 如下所示 include
  • 在 Mono 中反序列化 JSON 数据

    使用 Monodroid 时 是否有一种简单的方法可以将简单的 JSON 字符串反序列化为 NET 对象 System Json 只提供序列化 不提供反序列化 我尝试过的各种第三方库都会导致 Mono Monodroid 出现问题 谢谢 f
  • Selenium - C# - Webdriver - 无法找到元素

    在 C 中使用 selenium 我试图打开浏览器 导航到 Google 并找到文本搜索字段 我尝试下面的 IWebDriver driver new InternetExplorerDriver C driver Navigate GoT
  • 如何向 Mono.ZeroConf 注册服务?

    我正在尝试测试 ZeroConf 示例http www mono project com Mono Zeroconf http www mono project com Mono Zeroconf 我正在运行 OpenSuse 11 和 M
  • if constexpr 中的 not-constexpr 变量 – clang 与 GCC

    struct A constexpr operator bool const return true int main auto f auto v if constexpr v A a f a clang 6 接受该代码 GCC 8 拒绝它
  • C# 根据当前日期传递日期时间值

    我正在尝试根据 sql server 中的两个日期获取记录 Select from table where CreatedDate between StartDate and EndDate我通过了5 12 2010 and 5 12 20
  • 来自嵌入图像的 BitmapSource

    我的目标是在 WPF 窗口上重写 OnRender 方法中绘制图像 someImage png 它是嵌入资源 protected override void OnRender System Windows Media DrawingCont
  • 测量进程消耗的 CPU 时钟

    我用 C 语言编写了一个程序 它是作为研究结果创建的程序 我想计算程序消耗的确切 CPU 周期 精确的循环次数 知道我怎样才能找到它吗 The valgrind tool cachegrind valgrind tool cachegrin
  • 在 azure blob 存储中就地创建 zip 文件

    我将文件存储在 Blob 存储帐户内的一个容器中 我需要在第二个容器中创建一个 zip 文件 其中包含第一个容器中的文件 我有一个使用辅助角色和 DotNetZip 工作的解决方案 但由于 zip 文件的大小最终可能达到 1GB 我担心在进
  • 在哪里可以找到 Microsoft.Build.Utilities.v3.5

    如何获取 Microsoft Build Utilities v3 5 我正在使用 StyleCop 4 7 Stylecop dll 中的 StyleCop msbuild 任务似乎依赖于 Microsoft Build Utilitie
  • C++ 指针引用混淆

    struct leaf int data leaf l leaf r struct leaf p void tree findparent int n int found leaf parent 这是 BST 的一段代码 我想问一下 为什么
  • 如何编写一个接受 int 或 float 的 C 函数?

    我想用 C 语言创建一个扩展 Python 的函数 该函数可以接受 float 或 int 类型的输入 所以基本上 我想要f 5 and f 5 5 成为可接受的输入 我认为我不能使用if PyArg ParseTuple args i v
  • 如果找不到指定的图像文件,显示默认图像的最佳方式?

    我有一个普通的电子商务应用程序 我将 ITEM IMAGE NAME 存储在数据库中 有时经理会拼错图像名称 为了避免 丢失图像 IE 中的红色 X 每次显示产品列表时 我都会检查服务器中是否有与该产品相关的图像 如果该文件不存在 我会将其
  • ContentDialog Windows 10 Mobile XAML - 全屏 - 填充

    我在项目中放置了一个 ContentDialog 用于 Windows 10 上的登录弹出窗口 当我在移动设备上运行此项目时 ContentDialog 未全屏显示 并且该元素周围有最小的填充 在键盘上可见 例如在焦点元素文本框上 键盘和内
  • 如何在 C# 中获取 CMD/控制台编码

    我需要指定正确的代码页来使用 zip 库打包文件 正如我所见 我需要指定控制台编码 在我的例子中为 866 C Users User gt mode Status for device CON Lines 300 Columns 130 K
  • 如何在 ASP.NET Core 中注入泛型的依赖关系

    我有以下存储库类 public class TestRepository Repository
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有

随机推荐

  • 如何在 Visual Studio 中将剪贴板内容交换为当前选择

    有谁知道一个simple如何将剪贴板中当前的内容与当前的鼠标选择交换 假设我的剪贴板有文本Foo in it 在一行代码上public void DoBar I have Bar已选择 我想要一个可以改变的简单组合键DoBar to DoF
  • 如何从变量中去除 ANSI 转义序列?

    奇怪的问题 当我在 Bash 中设置变量以显示为某种颜色时 我不知道如何重置它 这是一个例子 首先定义颜色代码 YELLOW tput setaf 3 RESET tput sgr0 现在设置错误消息变量及其颜色部分 ERROR File
  • 用python连接从文件读取的字符串?

    Emacs 自动填充模式会分割行以使文档看起来更漂亮 我需要加入从文档中读取的字符串 例如 CR是回车符 不是真正的字符 Blah Blah and CR Blah Blah Blah CR Blah Blah CR A B C CR Bl
  • 创建文件信息列表时如何跳过未经授权访问的文件夹? [复制]

    这个问题在这里已经有答案了 我用这个来查找文件并列出列表 但是当涉及到需要授权访问的文件夹时 它就会停止 我怎样才能让它跳过这些文件夹并继续 string filetypes new string 3gp avi dat mp4 wmv m
  • 在 R 上安装 TDA 包时出错

    我正在尝试在 R 上安装 TDA 包 gt install packages TDA Installing package into home more R x86 64 redhat linux gnu library 3 3 as li
  • 向 DOM 元素添加非标准属性是一种不好的做法吗? - HTML/Javascript [重复]

    这个问题在这里已经有答案了 可能的重复 使用非标准 HTML 属性是否被认为是不好的做法 嗨伙计 我正在构建一个 javascript 库 其想法是向页面上的各种元素添加功能 完全隔离的最简单方法是添加非标准属性 e g div div 其
  • 不用eclipse将android项目编译成apk

    我所做的是从我的 Eclipse 项目中获取类文件并通过优化器 混淆器运行它们 所以我现在已经优化了类文件 我想以 apk 的形式获取它们 以便我可以签名并发布它 但是 我不知道如何做到这一点 我想我不能将它们复制到我的 eclipse 项
  • 从proc/sys/kernel/读取数据

    我想创建程序来获取有关操作系统的信息 我尝试使用系统调用 但认为从系统文件读取会更快 直接 因此 我编写了一个简单的程序 用于从目录 proc sys kernel 中的文件读取数据 并希望读取文件 osrelease 主机名 ostype
  • 如何通过指定函数来分组来获取密钥?

    假设我有向 mongo db 报告的 Web 应用程序错误 为了获取它们 按 URL 分组 我使用以下查询 db errors group cond date gt new Date 2013 0 3 6 0 0 lt new Date 2
  • SceneKit euler角度在旋转过程中出现奇怪的值

    我使用以下几行旋转 SCNNode let rotate SCNAction rotateByAngle CGFloat M PI aroundAxis SCNVector3Make 0 1 0 duration NSTimeInterva
  • SQL - 具有父子关系的排序表

    我们有一个具有父子关系的表 希望对其进行排序 排序标准是为了在迭代结果时 与父 ID 匹配的行应该已经存在 ID PARENT ID EF01 EF02 This is wrong as the row EF02 is after and
  • Python 3.2 无法导入 urllib2 (导入错误:没有名为 urllib2 的模块)[重复]

    这个问题在这里已经有答案了 我使用的是 Windows 并且收到错误 ImportError No module named urllib2 I think this是 Linux 的解决方案 但在 Windows 中如何设置呢 我正在使用
  • 查找 numpy 数组中最接近某个值的所有索引

    在 numpy 数组中 需要最接近给定常量的所有值的索引 背景是数字信号处理 该数组保存滤波器的幅度函数 np abs np fft rfft h 和某些频率 索引 被搜索 其中幅度为例如0 5 或在其他情况下为 0 大多数情况下 所讨论的
  • onActivityResult 执行两次

    From 主页活动我想得到一个结果创建配置文件活动 这是我开始活动的方法 Intent createProfile new Intent this CreatePreacherActivity class startActivityForR
  • 剥离 ASCII 模板意味着什么?

    我正在做练习考试题 问题执行该程序时 用户输入两个数字 xGuess 的值是多少 以便我们可以去掉 ASCII 模板 解释 ORIG x3000 TRAP x23 LD R2 ASCII ADD R1 R2 R0 TRAP x23 ADD
  • vbscript中下标超出范围错误

    有人可以看看下面的脚本并告诉我为什么它在 vbscript 中抛出此错误下标超出范围错误 在文本文件中 它有两个条目正确写入文件 但随后在退出循环时抛出错误 因此它从不调用其他函数 我认为它尝试运行 3 次 但文本文件中只有 2 个条目 T
  • Datagridview,仅显示唯一值是重复的单元格值 C# 2005

    我在显示值时遇到一些问题 但每次它重复 datagridview 中的值时 我都使用 Microsoft Visual C 2005 和框架 2 0 当我编程时 我发现在循环内我需要检查重复的值并对它们进行计数 如果出现新值则显示该值并发送
  • 配置管理器类。锁定时无法编辑 ConfigurationSection 属性

    这是代码 These is works Console WriteLine Properties Settings Default name Configuration configFile ConfigurationManager Ope
  • 从字符数组中删除所有空元素

    我有一个字符数组 一次最多可以容纳 50000 个字符 该数组的内容是通过套接字连接来的 但是 不能保证该字符缓冲区不会有任何空元素 然后我需要将此字符数组转换为字符串 例如 new String buffer 我的问题是 每当我从套接字收
  • 如何按字段之一对结构链接列表进行排序?

    哇现在我知道我不知道 哈哈 我的结构是这样的 struct Medico int Id Doctor int Estado char Nombre 60 focus on this part of the structure this is