嵌入式笔试刷题(第58天)

11. 单向链表排序

题目:给定 n(1 < n < 100)个整数,使用链表存储并按从小到大排列,不限算法。

输入样例:

5
1 3 2 5 4

输出样例:

1 2 3 4 5

解题思路:

  • 使用结构体构建链表节点;
  • 将输入元素插入链表;
  • 排序可用冒泡或直接插入;
  • 遍历输出链表。

简化代码示例(插入排序):

typedef struct Node {
    int val;
    struct Node* next;
} Node;

Node* insert_sorted(Node* head, int val) {
    Node *new_node = malloc(sizeof(Node));
    new_node->val = val;
    new_node->next = NULL;

    if (!head || val < head->val) {
        new_node->next = head;
        return new_node;
    }

    Node *curr = head;
    while (curr->next && curr->next->val < val)
        curr = curr->next;

    new_node->next = curr->next;
    curr->next = new_node;
    return head;
}

12. 鹿死谁手

题目简述:8位将军 AH 各说了一句话,其中有 X 人说对了。给定 X(18),判断是哪位将军射中鹿。如果结果唯一则输出将军,否则输出 NONE

输入样例:

1

解法:枚举每位将军为“真凶”,判断在这种假设下有多少人说对了。若唯一匹配人数为 X,返回该将军。

核心判断逻辑写法(伪代码):

for (killer in A~H) {
    count = 0;
    if ((killer == H || killer == F) == true) count++; // A说
    if (kill

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式笔试专栏 文章被收录于专栏

本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。

全部评论
mark
点赞 回复 分享
发布于 05-29 15:55 北京
mark收藏
点赞 回复 分享
发布于 05-29 15:51 北京
mark收藏
点赞 回复 分享
发布于 05-29 15:48 北京

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务