
C语言
文章平均质量分 79
0X78
可接小功能单片机,C语言设计,数据结构及C语言答疑 WX: DPJSJ0X78
展开
-
数据结构-图-领接表存储
/ 定义图的结构,使用邻接表表示// vexnum 表示图的顶点数,arcnum 表示图的边数// vertices 是邻接表,存储了图的所有顶点及其邻接链表} ALGraph;原创 2024-11-27 17:59:30 · 1381 阅读 · 0 评论 -
C语言单词文本计数
任务目标:编写一个C语言程序,用于统计一个文本文件中每个单词出现的次数(忽略大小写和标点符号),并将统计结果按单词出现次数从高到低排序后输出到另一个文件中。输入:源文件路径:"input.txt",该文件包含一些文本内容,单词之间由空格、标点符号等分隔。输出:输出文件路径:"output.txt",用于存储排序后的单词统计结果。输出格式:每行包含一个单词及其出现次数,按出现次数从高到低排序。例如:the: 5is: 3a: 2quick: 1brown: 1fox: 1jum原创 2024-11-24 22:46:22 · 1157 阅读 · 0 评论 -
数据结构-二叉树的遍历
先序遍历:根 -> 左 -> 右中序遍历:左 -> 根 -> 右后序遍历:左 -> 右 -> 根。原创 2024-08-30 18:25:32 · 3363 阅读 · 0 评论 -
数据结构-了解树和二叉树
空树:没有任何节点的树。非空树:包含一个根节点和零个或多个子树的集合。二叉树(Binary Tree)是一种每个节点最多有两个子节点的数据结构。这两个子节点通常被称为左子节点和右子节点。顺序存储是将二叉树的节点按照一定顺序存储在数组中的一种方法。该方法适用于完全二叉树或满二叉树,因为它们的节点排列较为规则,便于使用数组进行存储。链式存储是通过节点之间的指针关系来存储二叉树的一种方式。每个节点不仅存储数据,还包含指向其左右子节点的指针。链式存储适用于任意形状的二叉树,特别是对于不完全二叉树或稀疏树。原创 2024-08-30 09:57:35 · 1621 阅读 · 0 评论 -
数据结构-串-模式匹配算法(KMP算法)
KMP 算法的时间复杂度为 O(m+n),其中 m 是模式串的长度,n 是主串的长度。KMP 算法的空间复杂度为 O(m)。不论在最好、最坏还是平均情况下,KMP 算法的效率都优于简单的暴力匹配算法,特别是在处理长字符串时。int j = 0;:用于遍历模式串S的当前位置。:初始化next数组的第一个元素为-1,表示模式串的第一个字符之前没有任何字符(即没有前后缀)。int k = -1;:作为辅助变量,用于在next数组中回溯。初始化为-1,与next[0]原创 2024-08-21 22:23:09 · 1919 阅读 · 0 评论 -
数据结构-串-了解串-串的基本操作
使用一个固定长度的数组来存储串中的字符。数组的大小在定义时就确定,通常在数组的最后一个位置放置一个特殊字符(如空字符。原创 2024-08-21 18:05:09 · 1929 阅读 · 0 评论 -
数据结构-队列
队列是一种先进先出(FIFO, First In First Out)的数据结构。它的基本特性是:在队列中,元素的插入(入队)发生在队尾,元素的删除(出队)发生在队头。队列通常用于需要按顺序处理数据的场景。原创 2024-08-20 14:16:28 · 604 阅读 · 1 评论 -
数据结构-栈
栈是一种简单而重要的数据结构,广泛应用于计算机科学和编程中,尤其是在管理函数调用、表达式求值和实现算法时。由于其特有的LIFO特性,栈能够有效地处理需要临时存储和后续访问的元素。原创 2024-08-19 18:00:00 · 599 阅读 · 0 评论 -
数据结构-线性表-了解循环链表
单循环链表适合需要单向遍历的场景,结构简单,内存占用较少。双循环链表则提供了双向遍历的能力,适合需要频繁前后移动的场景,但内存占用相对较高。数据结构-线性表-单链表。原创 2024-08-18 10:12:48 · 381 阅读 · 0 评论 -
数据结构-线性表-单链表
单链表是一种基本的线性数据结构,由多个节点组成,每个节点包含数据域和指向下一个节点的指针。原创 2024-08-17 19:19:44 · 948 阅读 · 0 评论 -
了解指针使用
指针是强大而灵活的工具,但同时也需要谨慎使用,以避免潜在的错误和内存问题。理解指针的基本概念和操作是学习低级编程语言的重要一步。原创 2024-08-17 16:41:03 · 229 阅读 · 0 评论 -
数据结构-线性表-顺序表
顺序表(也称为线性数组)是一种线性数据结构,它将数据元素按顺序存储在一块连续的内存空间中。元素的顺序性:顺序表中的元素具有线性关系,每个元素都有一个唯一的位置(索引),可以通过索引直接访问。存储方式:顺序表的元素在内存中是连续存储的,这使得可以通过简单的下标访问实现快速的随机访问,时间复杂度为 O(1)。固定大小:在创建顺序表时,通常需要指定其最大容量,虽然可以通过动态数组等形式实现扩展,但扩展过程可能涉及到大量的数据复制。插入与删除操作。原创 2024-08-15 18:29:56 · 1952 阅读 · 0 评论 -
数据结构--数据结构概述
了解数据结构原创 2024-08-14 19:26:48 · 1458 阅读 · 0 评论 -
24电赛H题总结
yaw_adjusttarget(目标偏航角)、now_yaw(当前偏航角)、speed(基础速度)和B(调整系数),用于调整车辆或机器人的左右电机速度,以修正其行进方向。欧拉角 (pitchrollyaw: 这里定义了三个欧拉角,但pitch和roll被初始化为0且未在后续代码中使用,可能是预留的变量或用于其他目的。yaw用于存储从某个函数(假设是yaw_out())获取的当前偏航角,但实际上被now_yaw变量覆盖。now_yaw: 存储当前的偏航角,用于与初始偏航角yaw_init进行比较和调整。原创 2024-08-13 17:33:17 · 2319 阅读 · 0 评论 -
C语言入门算法——采药(了解动态规划)
这段代码实现了一个动态规划算法,用于解决背包问题的变种。它通过填充一个二维数组dp来记录在不同的时间和不同的药品数量下的最大药品价格总和。但对动态规划了解还较为模糊,还需练习。原创 2024-04-24 10:10:26 · 874 阅读 · 0 评论 -
C语言入门算法——明明的随机数
这个程序是一个简单的去重算法,通过对输入的数列进行排序和遍历,可以输出去重后的数列。程序通过遍历和标记的方法实现了去重功能。程序的时间复杂度为O(n^2),因为它需要进行两次遍历,所以在数据规模较大时可能会比较慢。原创 2024-04-22 09:16:34 · 646 阅读 · 0 评论 -
C语言入门算法——爬楼梯(了解动态规划)
了解动态规划,减小运行时间,在题目越来越难的情况下,原本的暴力手段已经不足以解决问题,只有通过学习不同的算法才能完成更高难度的题目,以下是本次总结。原创 2024-04-19 10:59:48 · 2383 阅读 · 0 评论 -
C语言入门算法——选数
这段代码实现了一个递归函数scan,用于计算一组数中满足特定条件的子集的数量。其中,函数用于判断一个数是否为质数。然后在main函数中读取输入,调用scan函数并输出结果。原创 2024-04-17 10:32:22 · 620 阅读 · 0 评论 -
C语言入门算法——最大公约数和最小公倍数问题
这个程序的主要功能是寻找满足条件的数对 P 和 Q,使得它们的乘积等于输入的 x 和 y 的乘积。程序的思路是在 P 和 Q 的所有可能组合中进行遍历,找到满足条件的数对并计数。原创 2024-04-16 17:32:39 · 1108 阅读 · 0 评论 -
C语言入门算法——进制转换
这段代码实现了在任意进制下,将一个整数转换为负进制的形式。其核心算法是通过递归和遍历,枚举每一位数字的取值,然后根据负进制的规则计算出对应的负进制数。代码中使用了一些辅助函数,如number_pow用于计算一个数的n次方,用于将数字转换为字符,用于计算负进制数的位数。原创 2024-04-15 10:21:49 · 1418 阅读 · 0 评论 -
C语言入门算法——回文数
代码实现了进制转换和同位数判断的功能,并且在实现过程中使用了数组、循环、条件语句等基本的编程知识。原创 2024-04-11 16:59:22 · 1717 阅读 · 0 评论 -
C语言入门算法——Cantor 表
该程序实现了康托展开算法,用于将一个正整数映射到一个唯一的有理数。程序首先读取一个正整数n,然后调用康托展开函数计算出对应的有理数的分子和分母,并输出结果。康托展开算法的基本思想是将一个排列映射到一个唯一的自然数,从而实现排列的全排列和组合的计数。该算法的应用广泛,如在组合数学、离散数学、计算机图形学、密码学等领域都有重要的应用。该程序实现了康托展开算法的基本逻辑,通过对坐标的变换,计算出对应的有理数的分子和分母。原创 2024-04-10 11:36:21 · 707 阅读 · 0 评论 -
C语言入门算法——拼数
该程序是一个用于对一组数字进行排序的简单C语言程序。采用了冒泡排序的方法,通过比较每一对相邻元素,根据需要交换它们的位置,从而达到排序的目的。程序首先读取输入的数字数量和具体的数字,然后调用排序函数对数字进行排序,并最终输出排序后的结果。原创 2024-04-10 10:40:03 · 924 阅读 · 0 评论 -
C语言入门算法——车站
程序的主要目的是计算一个公交车上乘客的人数变化,并根据输入的条件来确定最后一站的下车人数。程序的基本逻辑是模拟了公交车途经若干站后的人数变化过程,并通过函数station计算每一站的乘客人数,然后通过two_people函数来确定第二站的上车人数。two_people函数中的while循环没有合适的退出条件,限制i的最大值为2*10000也不是一个很好的做法。应该考虑使用更有效的搜索方法,避免不必要的循环次数。程序中缺少注释,特别是对于一些关键函数的作用和参数含义,应该添加更多的注释以提高代码的可读性。原创 2024-04-09 17:28:05 · 1495 阅读 · 0 评论 -
C语言入门算法——三连击
函数用于判断当前的九个数字是否满足条件,并在满足条件时计算并输出满足条件的三个三位数。calculate函数是一个递归函数,用于生成所有可能的九个数字组合。main函数初始化了九个数字为0,并调用了calculate函数开始递归生成数字组合。原创 2024-04-08 10:09:30 · 471 阅读 · 1 评论 -
C语言入门算法——铺地毯
程序首先接收输入n,表示地毯的数量,然后依次输入n块地毯的坐标信息。然后程序接收要计数的坐标信息。函数用于确定特定坐标是否位于某块地毯上,而函数则用于找出特定坐标所在的地毯编号。最后程序输出特定坐标所在的地毯编号。原创 2024-04-07 11:51:51 · 971 阅读 · 0 评论 -
C语言入门算法——过河卒
程序定义了一个函数来计算马的可攻击位置,这些位置存储在数组中。函数是一个递归函数,用于探索马的移动路径,计算成功到达目标位置的次数。main函数负责初始化起始位置A、目标位置B和C,然后调用函数,并输出成功到达目标位置的次数。原创 2024-04-07 10:59:54 · 952 阅读 · 0 评论 -
模拟 彩票/刮刮乐(C语言)
福利彩票 福利彩票35选7,随机生成7个数字,范围为10-35,数字不重复。用户可以选择自己的一组号码,并设置中奖规则。规则如下:猜中7个数字可获得500万奖金,猜中6个数字可获得100万奖金,猜中5个数字可获得1万奖金,猜中4个数字可获得5000奖金,猜中3个数字可获得500奖金,猜中0、1或2个数字则没有中奖。原创 2024-01-25 16:42:25 · 2722 阅读 · 1 评论