自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 数据结构--树和二叉树

文章目录1、树1.1、树的概念和模型1.2、树的表示2、二叉树2.1、特殊的二叉树:2.2、二叉树的存储结构2.3、二叉树链式结构的遍历3、二叉树实现的代码1、树1.1、树的概念和模型树:是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它 叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集 合T

2022-05-22 21:34:31 638 1

原创 数据结构---链表

文章目录1、链表表示2、单链表的接口3、带头双向循环链表的接口4、单链表的代码实现5、带头双向循环链表的代码实现1、链表表示顺序表的问题:中间/头部的插入删除,时间复杂度为O(N)增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到 200,我们再继续插入了5个数据,后面没有数据插入了,那么就浪费了95个数据空间。链表结构可以适当的解决这个问题。概念:链表是一种物理存储结构上非连续、非顺序的存储结

2022-05-20 21:40:53 248

原创 数据结构--顺序表

1、概念结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:静态顺序表:使用定长数组存储。动态顺序表:使用动态开辟的数组存储。(空间不够则增容)//顺序表的静态存储#define N 100typedef int SLDataType;typedef struct SeqList{ SLDataType array[N]; // 定长数组 size_t size; //

2022-05-19 17:44:55 265

原创 时间复杂度和空间复杂度

文章目录1、时间复杂度和空间复杂度的概念1、大O的渐进表示方法和实例:1、时间复杂度和空间复杂度的概念时间复杂度与空间复杂度是用来分析一个算法的效率的。算法效率分析分为两种:时间效率,时间效率被称为时间复杂度。时间复杂度主要衡量的是一个算法的运行速度。空间效率,而空间效率被称作空间复杂度。 空间复杂度主要衡量一个算法所需要的额外空间。在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再

2022-05-13 13:24:06 304

原创 C语言整型提升

文章目录1.什么是正整型提升2.整型提升的规则3.例题4.整型提升的意义1.什么是正整型提升官方的解释是:整型提升是C程序设计语言中的一项规定:在表达式计算时,各种整型首先要提升为int类型,如果int类型不足以表示则要提升为unsigned int类型;然后执行表达式的运算。2.整型提升的规则整型提升分为有符号和无符号两种。有符号的:整型提升时是按照变量的补码被截断时的最高位是什么进行补位的,如果截断后最高位(即最左面)的一位数为 1 则在最高位前补 1 ,如果最高位是 0 则在前面补 0

2022-05-01 21:40:38 3613 3

原创 C语言函数的递归调用

文章目录一、什么是递归一、什么是递归程序调用自身的编程技巧称为递归( recursion) 。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小递归的两个必要条件:存在限制条件,当满足这个限制条件的时候,递归便不再继续。每次递归调用之后越来越接近这

2022-04-25 20:45:43 3833 1

原创 C语言函数(函数分类,参数,调用,声名及定义)

文章目录@[TOC](文章目录)一、C语言中函数的分类二、函数的参数及调用三、函数的嵌套调用和链式访问四、函数的声名和定义一、C语言中函数的分类库函数自定义函数库函数:在开发的过程中,每个程序员都可能用得到,为了支持可移植性和提高程序的效率,C语言基础库中提供了一系列类似(strcpy:字符串拷贝函数)库函数,方便程序员进行开发。查找和学习库函数可以简单看看:cplusplus官网库函数有:IO函数:如:printf scanf getchar putchar 等字符串操作函数:如:s

2022-04-24 21:24:49 4603

原创 C语言的预编译(预处理)#define

一、预定义符号二、#define 定义标识符三、#define 定义宏四、#define 替换规则:五、#和## 两个符号(少见)六、宏和函数的对比七、#undef一、预定义符号预定义符号是系统本身定义的:FILE 进行编译的源文件的位置LINE 文件当前的行号DATE 文件被编译的日期TIME 文件被编译的时间STDC 如果编译器遵循 ASNSI C,其值为1,否者未定义二、#define 定义标识符语法:#define name st

2022-04-22 15:37:20 1791

原创 C语言程序的环境,编译+链接

文章目录@[TOC](文章目录)一、程序的翻译环境和执行环境二、使用步骤1.引入库2.读入数据总结一、程序的翻译环境和执行环境二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')import sslssl._create_d

2022-04-21 14:56:34 776

原创 C语言文件操作<二>

文章目录@[TOC](文章目录)前言一、文件的顺序读写函数二、使用步骤1.引入库2.读入数据总结前言接上一篇 C语言文件操作<一>一、文件的顺序读写函数fgetc字符输入函数 适用于所有输入流fputc字符输出函数 适用于所有输出流int fgetc( FILE *stream );int fputc( int c, FILE *stream );fputc 写文件int main(){ FILE* pfWrite = fopen("test.txt",

2022-04-20 15:10:47 117

原创 C语言的文件操作<一>

文章目录前言一、文件是什么?二、文件类型:三、文件缓冲区四、文件指针五、文件的打开和关闭总结前言文件操作重要吗?当然重要,如果你想让你的程序拥有记忆功能,那就需要把要记忆的信息和数据存入到一个外部文件里,以便下次提取。一、文件是什么?磁盘上的文件是文件。但在程序设计中,我们一般谈的文件有两种:程序文件、数据文件程序文件:包括源程序文件(后缀 .c),目标文件(后缀 .obj)可执行程序(windows环境后缀为 .exe)。数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,

2022-04-19 21:56:21 734

原创 柔性数组的简单介绍和使用

文章目录前言1.柔性数组是什么?2.柔性数组有哪些好处呢?3.柔性数组特点总结前言也许你从未听说过柔性数组这个概念,但它确实存在。C99中,结构体中的最后一个成员允许是未知大小的数组,这就叫柔性数组成员。1.柔性数组是什么?结构体中的最后一个成员允许是未知大小的数组,这就叫柔性数组成员。struct S{ int n; int arr[];//未知大小的柔性数组成员,数组的大小是可以调整的};int main(){ struct S s; printf("%d\n",sizeo

2022-04-18 22:41:58 611 1

原创 C语言动态内存管理

动态内存分配文章目录前言一、为什么存在动态内存分类二、动态内存函数使用及常见的动态内存错误1.malloc和free2.calloc3.realloc常见的动态内存错误总结前言一、为什么存在动态内存分类我们知道的内存使用方式:1.创建一个变量int a = 10; //局部变量——栈区int g_a = 10; //全局变量——静态区2.创建一个数组arr[10] = {0}; 如果是全局变量存放于栈区,如果是局部变量存放于静态区C语言内存的简单分布上述的两个方式有两个特点:1.

2022-04-15 21:58:17 1098

空空如也

空空如也

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

TA关注的人

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