- 博客(19)
- 收藏
- 关注
原创 堆-堆排-topk
现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。大堆排序,选出最大的放后面。然后忽略最后面的,把前面的变成新堆,在继续选出第二大的继续放到新堆后面。然后忽略最后面的,把前面的变成新堆,在继续选出第二大的继续放到新堆后面。从倒数的第一个非叶子节点的子树开始调整,一直向前调整到根节点,就可以原地调整成堆。根据完全二叉树性质可知,最后一个非叶节点为,最后一个节点的父节点。
2024-01-10 17:31:05 918
原创 程序环境和预处理
程序必须载入内存中。在有操作系统的环境中:一般这个由操作系统完成。在独立的环境中,程序的载入必须由手工安排,也可能是通过可执行代码置入只读内存来完成。程序的执行便开始。接着便调用main函数。开始执行程序代码。这个时候程序将使用一个运行时堆栈(stack),存储函数的局部变量和返回地址。程序同时也可以使用静态(static)内存,存储于静态内存中的变量在程序的整个执行过程一直保留他们的值。终止程序。正常终止main函数;也有可能是意外终止。__FILE__ //进行编译的源文件。
2023-10-09 22:58:04 57 1
原创 C语言文件操作
在计算机科学中,文件是一个存储在磁盘或其他存储设备中的数据集合。文件可以包含各种类型的数据,如文本、图像、音频、视频等。文件通常与程序中的输入输出操作相关联,用于存储和检索数据。功能函数名适用于字符输入函数fgetc所有输入流字符输出函数fputc所有输出流文本行输入函数fgets所有输入流文本行输出函数fputs所有输出流格式化输入函数fscanf所有输入流格式化输出函数fprintf所有输出流二进制输入fread文件二进制输出fwrite文件。
2023-10-04 21:04:05 158 1
原创 动态内存管理
第一次调用gobble()时,它创建了指针temp,并调用malloc()分配了16000字节的内存(假设double为8字节)。free()函数的参数是之前malloc()函数返回的地址,该函数释放之前malloc()分配的内存。每次调用malloc()分配内存给程序使用,每次调用free()将内存归还给内存池,这样便可重复使用这些内存。第二种,源地址后面没有足够的可用空间了,那么realloc()会在内存池中寻找新的连续的一块内存用。这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。
2023-10-02 16:42:13 50 1
原创 自定义类型:结构体, 枚举,联合
char c;//全局变量int main()//局部变量//局部变量return 0;结构体中可以放其他结构体struct sint i;char c;//全局变量struct ssdouble x;//结构体嵌套结构体char b;位段的声明和结构是类似的,有两个不同:1.位段的成员必须是 int、unsigned int、char 或signed int。2.位段的成员名后边有一个冒号和一个数字。struct A。
2023-10-01 22:25:21 42
原创 字符串函数与内存函数
在 my_strcpy 函数中,我们通过一个循环逐个字符地从 src 复制到 dest,并在复制完成后,为目标字符串末尾添加一个空字符 (‘\0’),以标志字符串的结束。在 my_strcat 函数中,我们首先使用一个循环找到目标字符串 dest 的末尾,然后使用另一个循环将源字符串 src 复制到目标字符串 dest 的末尾。需要注意的是,虽然这个递归实现可以正确地计算字符串的长度,但它并不是一个高效的实现方式。这里,dest是指向目标字符串的指针,src是要连接的源字符串,num是最大的连接长度。
2023-10-01 14:18:51 43
原创 题解 | #[NOIP2008]ISBN号码#C语言
每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X…共一行,假如输入的ISBN号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”)。
2023-09-27 10:41:27 167 1
原创 初始C语言及简单的数据类型
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
2023-07-02 01:05:40 57 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人