- 博客(35)
- 收藏
- 关注
原创 Linux权限
权限,是用来限制身份的,Linux中分为普通用户和超级用户超级用户就是root,可以在linux系统中做任何事不受限制,普通用户会被权限限制。
2024-04-10 17:15:52
351
原创 C++继承
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保 持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象 程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继 承是类设计层次的复用。
2024-04-04 15:31:30
475
原创 C++内存管理和简单模板
C++是一种通用编程语言,支持面向对象、过程性和泛型编程。在C++中,内存管理和模板是两个重要的概念,它们分别涉及到程序的运行时性能和代码的通用性。C++的很多东西都是针对自定义类型实现的比如这个class Apublic:A()~A()int a;在对自定义类型new时会自动调用类的构造函数,而delete会调用类的析构函数。
2024-01-12 20:27:45
388
1
原创 C++类和对象(下)
面向对象编程(Object-Oriented Programming,简称OOP)是一种强大的编程范式,它将数据和操作数据的方法组织成类和对象,使得程序更易于理解、扩展和维护。在C++中,类和对象是OOP的核心概念,为程序员提供了一种结构化的方法来组织和设计代码。本节我们继续来学习C++的类和对象。
2024-01-11 19:07:42
723
原创 C++类和对象(中)
面向对象编程(Object-Oriented Programming,简称OOP)是一种强大的编程范式,它将数据和操作数据的方法组织成类和对象,使得程序更易于理解、扩展和维护。在C++中,类和对象是OOP的核心概念,为程序员提供了一种结构化的方法来组织和设计代码。本节我们继续来学习C++的类和对象。
2024-01-09 17:40:51
410
原创 C++类和对象(上)
面向对象编程(Object-Oriented Programming,简称OOP)是一种强大的编程范式,它将数据和操作数据的方法组织成类和对象,使得程序更易于理解、扩展和维护。在C++中,类和对象是OOP的核心概念,为程序员提供了一种结构化的方法来组织和设计代码。本节我们来学习C++的类和对象
2024-01-07 20:42:58
721
原创 C++入门基本语法
欢迎来到C++的世界!C++是一种广泛使用的计算机编程语言,它提供了丰富的功能,包括面向对象编程、泛型编程以及底层内存操作等,本节介绍C++的入门基本语法。
2024-01-06 20:29:15
851
原创 快速排序和冒泡排序
排序算法是计算机科学中的基础工具之一,对于数据处理和算法设计有着深远的影响。了解不同排序算法的特性和适用场景,能够帮助程序员在特定情况下选择最合适的算法,从而提高程序的效率和性能。本节我们讲述两种交换排序。
2024-01-06 15:40:04
1213
原创 归并排序的实现
将已排序的子序列合并为一个新的有序序列。这是通过比较每个子序列的头部元素,选择最小的元素放入新序列,然后将相应子序列的指针向后移动一步,直到所有的子序列都被合并为一个新序列。对于内存受限的环境,这可能是一个显著的缺点。如果子序列的长度为1或零,那么它被认为是有序的。将原始序列划分为若干子序列,直到每个子序列包含一个或零个元素,即认为这些子序列是有序的。归并排序是一种稳定的排序算法,即对于具有相等键值的元素,其相对顺序在排序后保持不变。gap表示每一有序序列的元素个数,从最小的1个元素开始合并,两两合并。
2023-12-12 21:34:22
475
原创 选择排序和堆排序
排序算法是计算机科学中的基础工具之一,对于数据处理和算法设计有着深远的影响。了解不同排序算法的特性和适用场景,能够帮助程序员在特定情况下选择最合适的算法,从而提高程序的效率和性能。本节我们讲述选择排序和堆排序。
2023-12-11 21:11:22
1179
原创 插入排序和希尔排序
排序算法是计算机科学中的基础工具之一,对于数据处理和算法设计有着深远的影响。了解不同排序算法的特性和适用场景,能够帮助程序员在特定情况下选择最合适的算法,从而提高程序的效率和性能。本节我们讲述插入排序和希尔排序。
2023-12-11 20:43:09
1033
原创 二叉树的基本操作
BuyTreeNode用来创建新节点,BinaryTreeCreate用来创建整个树,并返回根节点,传入数组a和一个用来控制下标的pi,pi初始是0,如果K为1表示当前节点是第K层的节点,返回1,否则返回左子树和右子树的第K-1层的节点数。如果当前节点是要查找的,直接返回,不然就向左子树和右子树找,返回找到的节点,找不到返回空。从某个节点到其最远叶节点的路径上的节点数称为该节点的高度。从根节点到某个节点的唯一路径上的节点数称为该节点的深度。没有子节点的节点称为叶节点,它们位于二叉树的末端。
2023-12-03 16:38:35
408
1
原创 Linux重要基本命令
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存 在的目录,则会出现错误信息。2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它 将所给的源文件或目录重命名为给定的目标文件名。1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的 目录中。
2023-12-02 21:06:07
1179
2
原创 堆的实现与操作
堆一般用数组来存储有两种主要类型的堆:最大堆(Max Heap)和最小堆(Min Heap)。在最大堆中,父节点的值始终大于或等于其子节点的值。这意味着堆的根节点是具有最高优先级的元素。在最小堆中,父节点的值始终小于或等于其子节点的值。这意味着堆的根节点是具有最低优先级的元素。
2023-11-27 21:44:21
410
3
原创 设计循环队列(OJ)
方法一:使用size计数,size为0即为空,size与队容量相等即为满,使用余数计算存放位置方法二:多开一个空间,比如要求5个空间,我们开6个空间,那么队头等于队尾即为空,队头的上一个为队尾即为满,使用余数计算存放位置
2023-11-25 17:09:46
964
3
原创 栈和队列的基本操作
栈就像往一个木桶里面塞东西.要拿到最开始塞的东西,就得将后塞的东西先出.栈是一个先入后出的数据结构,你只能在顶部放置或移除,而不能在中间或底部操作。这使得栈非常适合处理需要按照相反顺序处理的数据,例如函数调用、表达式求值、括号匹配等应用场景。栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。
2023-11-25 16:04:45
354
1
原创 双循环链表
与单链表不同的是,双向循环链表有两个指针,一个指向上一个节点,一个指向下一个节点.双向链表有一个头节点,这个节点不存放数据,而是作为哨兵位,指向链表尾和头。与单链表相比,双链表具有更多的灵活性,因为可以从任意一个节点开始向前或向后遍历整个链表。
2023-11-25 15:07:07
387
1
原创 单链表的操作
链表有很多结构,我们这里先讲述不带头不循环的简单单链表单链表的节点一般由指向下一个节点的地址和数据成员组成,通过当前节点中存放下一个节点的地址,找到下一个节点,最后一个节点的下一个节点为NULL,单链表就是这些节点的组成,
2023-11-22 11:12:07
29
原创 程序环境和预处理
预处理在预处理阶段,会将程序里面的宏定义,预处理命令,以及注释等替换,生成.i文件,注释被替换为一个空格,头文件会包含编译 在编译阶段,会将C语言程序翻译为汇编语言生成.s文件,并进行 1.词法分析 2.语义分析 3.语法分析 4.符号汇总汇编 生成符号表,并将汇编代码翻译为二进制命令,生成.obj文件
2023-10-21 19:45:00
61
4
原创 C语言文件操作
缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针”。 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统 声明的,取名FILE.
2023-10-11 11:40:46
41
5
原创 自定义类型
结构体的对齐规则:1. 第一个成员在与结构体变量偏移量为0的地址处。2. 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。 对齐数 = 编译器默认的一个对齐数 与 该成员大小的较小值。3. 结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。4. 如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整 体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍
2023-09-23 21:01:03
50
3
原创 部分字符串函数与内存函数
strtok函数找到str中的下一个标记,并将其用 \0 结尾,返回一个指向这个标记的指针,(注: strtok函数会改变被操作的字符串,所以在使用strtok函数切分的字符串一般都是临时拷贝的内容并且可修改。) strtok函数的第一个参数不为 NULL ,函数将找到str中第一个标记,strtok函数将保存它在字符串 中的位置。这是一个字符串比较函数,标准规定: 第一个字符串大于第二个字符串,则返回大于0的数字 第一个字符串等于第二个字符串,则返回0 第一个字符串小于第二个字符串,则返回小于0的数字。
2023-09-21 09:50:35
66
9
原创 如何设计一个全类型冒泡排序
四个参数,第一个接受任意类型的数组,第二个是数组的元素个数,第三个是每个元素的大小,第四个是一个函数指针,指向一个使用者自己写的比较函数,
2023-09-14 17:12:31
47
1
原创 函数指针与回调函数(指针2)
首先这是个数组,指针应该先与 [ ] 结合,其他的与函数指针类型一样比如p就是一个函数指针数组这个函数指针数组p存放了add,sub,mul三个函数的地址,我们就可以通过数组来找i到函数,
2023-09-07 11:06:07
50
1
原创 指针进阶(1)
储存一个函数的地址,上面p为指针变量名,后面的()表示函数的参数,因为这个函数没有参数,所以不写,最前面是函数的返回类型,之后我们就可以调用 指针变量(参数) 来调用这个函数
2023-08-30 18:23:47
34
原创 数据在内存中的储存
数组类型> 结构体类型 struct> 枚举类型 enum> 联合类型 union指针类型:int *pi;char *pc;float* pf;void* pv;还有空类型void。
2023-08-05 16:22:23
34
1
原创 C语言初级结构体
结构体是一些数值的集合体,比如一个学生的信息这就创建了一个学生信息的结构体,typedef修饰后,使得结构体成为一个自定义类型,后面就可以用Stu 变量名,来快速定义一个学生,结构体里的类型可以任意,字符,整型,其他结构体,数组都可以,如果使用typeded修饰,那么最下面的括号外的Stu代表一个自定义类型,如果不用typedef修饰,那么最下面的括号外的Stu表示一个变量。
2023-08-05 15:08:38
42
1
原创 C语言一维数组和二维数组
数组是一组相同类型元素的集合。数组的创建方式:注:数组创建,在C99标准之前, [] 中要给一个常量才可以,不能使用变量。在C99标准支持了变长数 组的概念。
2023-07-27 20:54:42
72
1
原创 c语言函数
自定义函数是程序员定义的用于执行特定任务的代码块,通过自定义函数,程序员可以将一段重复使用的代码封装起来,并给它一个特定的名称,以便在程序的其他部分多次调用.即方便又能使代码更有可读性.函数调用是通过函数名称和实参来执行函数体内的代码块,比如Print(arr),假设这个函数用于打印数组的全部数据,那么传入arr就是数组,对于声明,这个函数不需要返回值,声明即可void Print(int arr);调用函数可直接Print(arr);
2023-07-26 17:19:57
40
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人