数据结构和算法教程(C语言版)

六年创作,三次迭代,千般打磨,成就了现在这套精品的数据结构和算法教程。

  • 博客(241)
  • 收藏
  • 关注

原创 十分钟彻底了解C语言(小白必读)

对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员。文章篇幅较长,大家一定要耐心看完。读完本文,能彻底搞清楚以下几个问题:C语言究竟是一门怎样的语言?C语言到底能做什么?C语言能找什么工作?能拿多少钱?程序员必须要学习C语言吗?学编程难吗?多久能入门?C语言和C++到底是什么关系?

2025-01-15 20:21:16 1599

原创 ASCII码一览表,ASCII码对照表(新手必备)

ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是一套基于拉丁字母的字符编码,共收录了 128 个字符,用一个字节就可以存储,它等同于国际标准 ISO/IEC 646。ASCII 编码于 1967 年第一次发布,最后一次更新是在 1986 年,迄今为止共收录了 128 个字符,包含了基本的拉丁字母(英文字母)、阿拉伯数字(也就是 1234567890)、标点符号(,.!

2024-09-14 20:10:38 17904

原创 C语言是干嘛的,我列举了8种经典案例

虽然C语言的开发场景看起来很多,但是如果总结一下的话,无非就是:底层/系统开发 +关键组件/模块的开发 + 贴近硬件的开发,这些开发场景非常关注运行效率,或者响应时间,或者硬件资源。C语言基础教程​http://​www.54benniao.com/c/?pid=8​。

2024-06-12 22:33:56 987

原创 C语言是什么,花十分钟彻底搞清楚!

对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员。C语言发布于 1972 年,今年是 2023 年,它已经 50 多岁了,是一个不折不扣的“大叔”或者“大爷”。但是呢,现在的 C 语言依然非常流行,每一个科班出身的程序员都必学C语言。在 2023 年 10 月份发布的世界编程语言排行榜中,C 语言拿了一个第二名的好成绩,占据了 12.08% 的市场份额。这些底层知识决定了你的发展高度,也决定了你的职业生涯。如果你希望成为出类拔萃的人才,而不仅仅是码农,这么这些知识就是不可逾越的。

2024-06-11 20:41:14 2576

原创 C语言编译器大全(含下载和安装教程)

本篇文章搜集了常用的几乎所有C语言编译器(编程软件),同时附带下载地址、详细的安装教程和使用教程。我们还对比了不同C语言编译器(C语言编程软件)的优缺点,让初学者知道该如何选择。本节给大家介绍的 C 语言编译器覆盖全平台,包括 Windows、Linux 和 Mac OS,不管你使用什么电脑,都能编写C语言代码。Windows 下的C语言编译器众多,多如牛毛,有的功能强大,但是安装和使用都比较复杂,有的小巧灵活,但是功能较弱;这里我们收集了八款常用的编译器,供大家下载。

2024-06-11 19:28:26 72051 2

原创 data.biancheng.net数据结构网站

网站上有一整套的数据结构和算法教程,是 C 语言版本的,整套教程通俗易懂,不学院派,内容全面详尽,提供了完整、可运行的 C 语言程序,非常适合有 C 语言基础、对数据结构感兴趣的读者。感兴趣的小伙伴可以访问。

2024-01-17 17:35:14 572

原创 一对一辅导C语言和数据结构

学习 C 语言和数据结构遇到障碍的小伙伴,我可以提供一整套的文字教程,外加一对一答疑服务,全程助力你快速入门编程。

2024-01-10 16:04:40 553

原创 数据结构和算法教程(C语言版)

数据结构研究的是数据之间的关系,再进一步说,它研究的是多份数据之间的分布、排列和勾连的关系,以及在此基础之上如何进行高效的增删改查操作。数据结构是计算机专业的基础课程,也是所有程序员的内功心法;不懂数据结构就是写代码的农民,了解数据结构才能成为行业专家。六年创作,三次迭代,千般打磨,成就了现在这套精品的数据结构和算法教程。为了降低阅读门槛,本教程所有代码都基于C语言编写。

2023-11-04 14:20:52 1306

原创 数据结构QQ交流群:937184979

数据结构QQ交流群:937184979,快速提升数据结构水平!!

2019-11-18 13:04:44 699

原创 清华大学DeepSeek+DeepResearch:让科研像聊天一样简单(无套路免费下载)

它证明:借助DeepSeek和DeepResearch这样的AI工具,科研工作者能够大幅提升工作效率,简化复杂的研究流程,将更多精力投入到创新和决策中。未来,AI不仅是一个工具,更是科研的“智能助手”,能够与人类研究者协同工作,推动科学研究的快速发展。DeepSeek和DeepResearch的出现,标志着AI技术在科研领域的广泛应用,未来,AI将成为科研工作者的得力助手,推动科学研究的快速发展。:AI工具不仅是一个工具,更是科研的“智能助手”,能够与人类研究者协同工作,提供决策支持、数据分析和创新建议。

2025-02-21 22:25:22 1598

原创 清华大学DeepSeek教程第二版,deepseek如何赋能职场应用(无套路,直接下载)

DeepSeek 如何赋能职场应用?》不仅是技术手册,更是一份AI时代的职场生存指南。无论您是营销人员、设计师、数据分析师还是管理者,都能从中找到提升效率的钥匙。在“人机共生”的未来,掌握与 AI 协作的能力,将成为职场进阶的核心竞争力。立即行动,让 DeepSeek 为您的职业发展按下加速键!

2025-02-18 17:05:02 1449

原创 C语言类型转换详解(自动类型转换+强制类型转换)

在 C 语言中,数据类型转换就是将数据(变量、数值、表达式的结果等)从一种类型转换为另一种类型。自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。程序员也可以自己在代码中明确地提出要进行类型转换,这称为强制类型转换。

2025-02-10 17:41:39 985

原创 C语言用fgets()代替gets()!

从 C99 标准开始,就不再推荐使用 gets() 函数了,当程序中需要读取一行字符时,可以用 fgets() 函数代替 gets() 函数。值得一提的是,尽管新的 C 语言标准已经移除了 gets() 函数,但很多 C 语言编译器(IDE)仍然保留着 gets() 函数,程序里使用 gets() 函数,大概率也能成功运行!

2025-02-10 17:37:06 815

原创 C语言switch case用法详解(新手必看)

switch case 是C语言中常用的分支结构,特别适合处理有多个离散值的情况。相比编写多个 if else 语句,switch case 通常看起来更加清晰和直观。

2025-01-25 09:14:36 1262

原创 C语言if else用法详解(通俗易懂,新手必看)

if else 语句是C语言中最常用的选择结构(分支结构),它可以根据不同的条件执行不同的代码块,是初学者必须掌握的。

2025-01-25 09:08:13 1364

原创 C语言编程软件汇总与推荐(15款,新手必看)

之所以列出这么多C语言编程软件,主要是让大家有所了解,实际开发中熟悉一两款即可(根据“使用建议”中推荐的来选择),千万不要挨着尝试,太浪费时间了。

2025-01-24 18:22:44 10374

原创 C语言布尔类型(_BOOL和bool)详解(新手必看)

对于仅有两个值的变量,C99 标准建议将变量的类型设定为布尔类型,可以用 _Bool 或者 bool 表示。如果编译器不支持布尔类型,退而求其次,通常选用 int 类型。在 C99 标准中,想用 bool 表示布尔类型,想用 true 和 false 表示布尔类型的两种取值,必须先引入头文件。

2025-01-23 16:16:10 446

原创 C语言到底能干什么,学C语言有什么用?

虽然C语言的开发场景看起来很多,但是如果总结一下的话,无非就是:底层/系统开发 +关键组件/模块的开发 + 贴近硬件的开发,这些开发场景非常关注运行效率,或者响应时间,或者硬件资源。

2025-01-23 16:02:59 702

原创 C语言二维数组的定义、初始化、赋值(通俗易懂,新手必看)

其中,dataType 为每个元素的类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。我们可以将二维数组看做一个 Excel 表格,有行有列,length1 表示行数,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列。如果想表示第 2 行第 1 列的元素,应该写作 a[1][0]。也可以将二维数组看成一个坐标系,有 x 轴和 y 轴,要想在一个平面中确定一个点,必须同时知道 x 轴和 y 轴。

2025-01-20 21:13:18 845

原创 C语言数组的定义和使用(非常详细,大量示例)

其中,dataType 是每个元素的类型,比如 int、float、char 等;dataType 是数组的名字,它是一个自定义的标识符,符合标识符的命名规则;方括号[ ]中的 length 是数组的长度,也即数组包含的元素的个数。这样就定义了一个名为 nums 的数组,它包含 4 个 int 类型的元素。//定义一个可以存储 100 个浮点数的数组//定义一个可以存储 20 个字符的数组。

2025-01-20 21:01:00 1271

原创 C语言unsigned用法详解(新手必看)

在数学中,数字有正负之分。在 C语言中也是一样,short、int、long 和 long long 都可以带上正负号。C语言中如果不希望设置符号位,可以在数据类型前面加上unsigned关键字,

2025-01-15 20:18:14 1064

原创 C语言gets()被删除了,改用fgets()!

从 C11 标准开始,就不再推荐使用 gets() 函数了,当程序中需要读取一行字符时,可以用 fgets() 函数代替 gets() 函数。值得一提的是,尽管新的 C 语言标准已经移除了 gets() 函数,但很多 C 语言编译器(IDE)仍然保留着 gets() 函数,程序里使用 gets() 函数,大概率也能成功运行!

2025-01-15 20:11:38 904

原创 数据结构知识点大全(含思维导图,初学者必看)

学习数据结构,就是学习各种存储数据的方案。玩转数据结构,实际开发中遇到的各类数据存储问题都难不倒你。最后给大家推荐一套非常 Nice 的数据结构快速入门教程(网址是 xiexuewu.github.io),教程通俗易懂,深入浅出,不仅讲解数据结构的知识点,还深度剖析了 20+ 个练习题/小项目/小游戏,还提供了完整的C语言代码,复制到编译器一键运行,非常适合初学者阅读:数据结构与算法教程(C语言版) - 玩转C语言和数据结构这套数据结构与算法教程,基于C语言,适合初学者入门。

2024-12-28 09:36:49 465

原创 一文搞定链表基本操作(增删查改,新手必看)

链表又称单链表、链式存储结构,用于存储逻辑关系为“一对一”的数据。和顺序表不同,使用链表存储数据,不强制要求数据在内存中集中存储,各个元素可以分散存储在内存中。

2024-12-28 08:59:25 564

原创 C语言?和:,C语言条件运算符详解(新手必看)

条件运算符是 C语言中唯一的一个三目运算符,其求值规则为:如果表达式 1 的值为真,则以表达式 2 的值作为整个条件表达式的值,否则以表达式 3 的值作为整个条件表达式的值。读者可以认为条件运算符是一种简写的 if else,完全可以用 if else 来替换。该语句的语义是:如 a>b 为真,则把 a 赋予 max,否则把 b 赋予 max。这也就是条件表达式嵌套的情形,即其中的表达式又是一个条件表达式。2) 条件运算符?和 : 是一对运算符,不能分开单独使用。3) 条件运算符的结合方向是自右至左。

2024-12-27 21:52:41 350

原创 C语言++和--用法详解(新手必看)

对于 d=(++a)-(--b),a 会先自增,变成 13,然后 b 再自减,变成 -1,最后再计算 13-(-1),结果是 14,交给 d,所以 d 最终是 14。4) 对于 d1=d--,d 的值并不会立马减 1,而是先把 d 原来的值交给 d1,然后再减 1。1) 执行语句 ① 时,因为是后自减,会先进行 a-b 运算,结果是 11,然后 b 再自减,就变成了 0;可以看出:a1=++a;3) 对于 c1=--c,先执行 --c,结果为 29,再将 29 赋值给c1,所以 c1 的最终值为 29。

2024-12-27 21:43:18 404

原创 汉诺塔问题图解版(C语言实现,新手必看)

汉诺塔问题源自印度一个古老的传说,印度教的“创造之神”梵天创造世界时做了 3 根金刚石柱,其中的一根柱子上按照从小到大的顺序摞着 64 个黄金圆盘。图 1 给您展示了包含 3 个圆盘的汉诺塔问题:图 1 汉诺塔问题一根柱子上摞着 3 个不同大小的圆盘,那么在不违反规则的前提下,如何将它们移动到另一个柱子上呢?图 2 给大家提供了一种实现方案:图 2 汉诺塔问题的解决方案汉诺塔问题中,3 个圆盘至少需要移动 7 次,移动 n 的圆盘至少需要操作 2n-1 次。

2024-12-26 09:55:56 784

原创 归并排序算法图解版(C语言实现)

归并排序算法的时间复杂度为O(nlogn)。该算法相比于堆排序和快速排序,其主要的优点是:当记录表中含有值相同的记录时,排序前和排序后在表中的相对位置不会改变。例如,在记录表中记录 a 在记录 b 的前面(记录 a 和 b 的关键字的值相等),使用归并排序之后记录 a 还在记录 b 的前面。这就体现出了该排序算法的稳定性。而堆排序和快速排序都是不稳定的。t=O83A数据结构和算法教程(C语言版)https://xiexuewu.github.io/ds/

2024-12-26 09:48:56 930

原创 栈,数据结构中的栈(C语言实现,新手必看)

对于逻辑关系为“一对一”的数据,除了用顺序表和链表存储外,还可以用栈结构存储。

2024-12-24 09:35:29 1298

原创 队列详解:一文彻底搞懂队列(C语言实现,新手必看)

通过学习链式队列最基本的数据入队和出队操作,我们可以就实际问题,对以上代码做适当的修改。前面在学习顺序队列时,由于顺序表的局限性,我们在顺序队列中实现数据入队和出队的基础上,又对实现代码做了改进,令其能够充分利用数组中的空间。链式队列就不需要考虑空间利用的问题,因为链式队列本身就是实时申请空间。因此,这可以算作是链式队列相比顺序队列的一个优势。//链表中的节点结构int data;}QNode;//创建链式队列的函数//创建一个头节点//对头节点进行初始化。

2024-12-24 09:21:02 869

原创 二叉树中序遍历(多种方式实现,C语言详解版)

遍历二叉树的方式有很多种,比如本文要详细讲解的中序遍历,以及层次遍历、先序遍历和后序遍历。二叉树的中序遍历,指的是从根结点出发,按照以下步骤访问二叉树举个简单的例子,下图是一棵二叉树:图 1 二叉树中序遍历这棵二叉树的过程是:进入结点 1 的左子树,访问左子树中的结点;进入结点 2 的左子树,访问左子树中的结点;试图进入结点 4 的左子树,但该结点没有左子树;访问结点 4;试图进入结点 4 的右子树,但该结点没有右子树;访问结点 2;

2024-12-23 21:06:27 1117

原创 线性表详解:一文彻底玩转线性表(万字长文,新手必看)

线性表是数据结构里最简单的一种存储结构,没有之一。数据结构中的很多种存储结构,包括串、广义表、树、图等,学习它们都必须有线性表的知识基础,只有玩转线性表,后续再学习复杂的存储结构才能事半功倍。根据数据在物理内存中的存储状态,线性表又可以细分成顺序表(顺序存储结构)和链表(链式存储结构)。顺序表和链表还有很多变体,包括静态链表、循环链表、双向链表等。这篇文章比较长,但我敢保证,大家认真看完这篇文章,就能彻底玩转线性表。

2024-12-23 20:23:04 835

原创 C语言是什么,一文快速了解C语言(新手必读)

对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解 C语言的程序员。这些底层知识决定了你的发展高度,也决定了你的职业生涯。如果你希望成为出类拔萃的人才,而不仅仅是码农,这么这些知识就是不可逾越的。也只有学习C语言,才能更好地了解它们。有了足够的基础,以后学习其他语言,会触类旁通,很快上手,7 天了解一门新语言不是神话。想深入、系统了解 C 语言的小伙伴,给大家推荐一套非常 Nice 的教程,语言通俗易懂,没有那种“学院派”的味道,知识点全面、详细,非常适合 0 基础、想快速入门编程的人。

2024-12-23 09:54:16 1204

原创 MinGW下载和安装教程(图文并茂,新手必看)

GCC 官网提供的 GCC 编译器是无法直接安装到 Windows 平台上的,如果我们想在 Windows 平台使用 GCC 编译器,可以安装 GCC 的移植版本。如果读者仅需要在 Windows 平台上使用 GCC,可以使用 MinGW 或者 Cygwin;除此之外,如果读者还有更高的需求(例如运行 POSIX 应用程序),就只能选择安装 Cygwin。本节要重点给大家介绍的是 MinGw 的安装和使用。

2024-12-16 10:02:13 1314

原创 VSCode配置C语言环境(图文并茂,一看就懂)

Visual Studio Code(简称 VSCode)作为当下热门的代码编辑器,这篇文章讲解如何使用 VS Code 运行 C 语言程序。VS Code 支持跨平台,包括 Windows、Mac OS X 以及 Linux。但和前者不同的是,无论读者在哪一平台上使用 VS Code,令其具备运行 C 语言程序能力的配置方法是一致的。本节将以配置 Windows 平台上 VS Code 为例,为大家讲解如何在 VS Code 上直接运行 C 语言程序。

2024-12-16 09:54:34 2777 2

原创 switch case语句,C语言switch case详解(超级肝)

switch case 是C语言中常用的分支结构,特别适合处理有多个离散值的情况。相比编写多个 if else 语句,switch case 通常看起来更加清晰和直观。

2024-12-12 20:55:44 820

原创 一文搞懂printf,C语言printf函数详解(超级肝,新手必看)

对于初学者来说,上面讲到的 printf() 用法已经比较复杂了,基本满足了实际开发的需求,相信大家也需要一段时间才能熟悉。吸收了本文中 printf 函数的所有用法,你就成功掌握了它。

2024-12-12 20:46:51 1095

原创 玩转scanf,C语言scanf详解(超级肝,新手必看)

scanf() 是C语言里最灵活、最复杂、最常用的输入函数,但它不能完全取代其他函数,大家都要有所了解。

2024-11-27 11:02:45 1889

原创 水仙花数C语言实现(源码+解析)

通过这个水仙花数的 C语言实现,我们清晰地看到了如何通过数学运算和循环来解决特定的数字问题。这不仅加深了我们对 C语言基本运算和控制结构的理解,也锻炼了我们的逻辑思维能力。希望大家能从这样的小例子中不断积累编程经验,提高自己的技能。t=O83AC语言入门教程(非常详细) - 玩转C语言和数据结构这套C语言入门教程通俗易懂,深入浅出,涵盖了C语言所有的知识点,既适合初学者入门,也适合程序员进阶,还适合在校生打比赛,是学习C语言不可多得的优质教材。

2024-11-25 15:58:34 776

原创 C语言究竟是什么(超级肝,新手必看)

彻底了解 C 语言之前,首先要搞清楚「编程语言」这个概念。很小的时候,父母就教我们开口说话,也教我们如何理解别人讲话的意思。经过长时间的熏陶和自我学习,我们竟然在不知不觉中学会了说话,同时也能听懂其他小朋友说话的意思了,我们开始向父母要零花钱买零食和玩具、被欺负了向父母倾诉……我们说的是汉语,是“中国语言”,只要把我们的需求告诉父母,父母就会满足,我们用“中国语言”来控制父母,让父母做我们喜欢的事情。“中国语言”有固定的格式,每个汉字代表的意思不同,我们必须正确的表达,父母才能理解我们的意思。

2024-11-21 11:27:50 955

先序线索二叉树、中序线索二叉树和后序线索二叉树

对先序线索二叉树、中序线索二叉树和后序线索二叉树进行了 C 语言实现,主要包括线索二叉树的建立和遍历过程。

2024-01-01

栈求表达式的值(C语言实现)

用栈求表达式的值,提供了完整、可执行的 C 语言程序

2023-12-28

双向链表实现贪吃蛇游戏(C语言版)

本资源设计实现的贪吃蛇游戏,用双向链表实现,编程语言为 C 语言,源码文件有 3 个,分别为 snake.h、snake.c 和 main.c。

2023-12-26

反转带头结点的链表(4种方法)

用迭代、递归、头插、就地逆置共 4 种方法反转带头节点的链表,代码用 C 语言实现。

2023-12-26

反转链表(不带头结点)

用迭代、递归、头插、就地逆置共 4 种方法反转不带头节点的链表,代码用 C 语言实现。

2023-12-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除