c语言笔记
文章平均质量分 83
记录学习c语言的笔记
dong132697
还在学习中,文章中的完整代码可以私聊我,无偿发。
展开
-
排序之归并排序
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。所谓归并,就是将两组有序的数据合成为一组有序的数据,例如有如下两个有序数组,将两个有序数组归并为一个有序数组,这就是一次归并操作。原创 2023-09-03 20:36:33 · 17818 阅读 · 0 评论 -
排序之交换排序
所谓交换,是指根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。即将数组中两个元素进行比较,如果前者大于后者,就让两个元素交换位置。原创 2023-09-02 18:12:38 · 434 阅读 · 0 评论 -
排序之选择排序
选择排序的基本思想就是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。原创 2023-08-31 23:10:54 · 122 阅读 · 0 评论 -
排序之插入排序
排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。原创 2023-08-31 21:52:18 · 463 阅读 · 0 评论 -
c语言实现二叉树(链式结构)
当我们使用顺序结构实现了二叉树的存储后,接下来就是使用链式结构来实现二叉树的存储。原创 2023-08-30 21:06:15 · 1257 阅读 · 0 评论 -
c语言实现堆
在学习堆之前我们需要对数据结构中的树结构先有一定的了解。数据结构中的树结构就像一棵真正的倒置的树一样。树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点。除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1原创 2023-08-27 21:08:01 · 811 阅读 · 0 评论 -
c语言实现队列
栈的特点是元素后进先出(Last In First Out),而对应的还有一种数据结构,该结构的特点是先进先出(First In First Out),即为队列。原创 2023-08-24 22:44:46 · 1345 阅读 · 0 评论 -
c语言实现栈
在学习完链表之后,接下来就要了解另外的两个常用的线性数据结构,栈和队列。原创 2023-08-23 17:01:35 · 112 阅读 · 0 评论 -
c语言实现双向链表
我们知道当要删除一个单链表中目标结点的上一个结点时,需要先遍历单链表,然后找到该目标结点,并且标记目标结点的上一个结点,这样才能实现删除目标结点的上一个结点的操作。而还有一种双向链表,该链表的结点不仅有next指针域存储下一个结点的地址,还有一个prev指针域用来存储上一个结点的地址,这样双向链表删除目标结点的上一个结点就不要再遍历链表了,这只是双向链表的一个特点,双向链表还有很多实用的地方。原创 2023-08-22 21:40:48 · 90 阅读 · 0 评论 -
c语言关键字的笔记
寄存器变量是不能取地址的,因为存放在内存里面的变量才会有地址,而寄存器是直接集成在cpu上的,所以没有地址。EOF --- end of file --- 文件结束标志 -> -1。在c语言的定义中为 #define EOF -1 ,所以EOF的值就是-1。'0' 字符0 ascii码值是48。'\0' 转义字符 ascii码值是0。原创 2023-07-28 11:06:06 · 46 阅读 · 1 评论 -
c语言中的常量
我们可以将一些在项目中常用的并且不希望被修改的值用#define来修饰,那样当我们想要改变项目中所有这个值时,只需在定义的地方将值改变即可。并且我们要注意的是define并不是c语言中的关键字。//后期如果我们想修改数组的长度,直接在#define定义的地方修改LEN的值即可return 0;原创 2023-07-27 17:22:47 · 97 阅读 · 1 评论 -
c语言分支语句和循环语句(2)
需要引入#include<limits.h>。原创 2023-07-29 14:27:58 · 28 阅读 · 0 评论 -
c语言分支语句和循环语句
在下列代码中,因为if和else只能执行一句,所以在该代码中,if和else合起来算一条语句,并且else是就近匹配if的。当while语句中遇到continue时,就会从continue开始跳过这次循环,直接开始下次循环。for语句的三个表达式都可以省略,但是在使用时不建议省略。当for循环的判断部分省略了时,就意味着判断恒为真。在c语言中,0表示假,非0表示真,即-1也表示真。switch(整型表达式) { 语句项;下面这个代码的作用是只打印数字,跳过其他字符。可以使用下面的代码来消去。原创 2023-07-28 21:59:30 · 35 阅读 · 1 评论 -
c语言指针笔记
define定义的常量在预处理文件中都被替换为代表的值。#define NUM 100 //定义int型#define STR "string" //定义字符串//在预处理文件中为 int a = 100;直接将NUM都替换为100//在预处理文件中为 char arr[10] = "string";//都会将NUM替换为100//都会将STR替换为字符串"string"return 0;//#define定义的宏是有参数的。原创 2023-07-28 16:19:52 · 48 阅读 · 1 评论 -
c语言内置数据类型
学习日常原创 2023-07-27 11:03:49 · 139 阅读 · 1 评论