- 博客(26)
- 收藏
- 关注
原创 数据结构:队列 二叉树
摘要:队列是遵循FIFO原则的线性结构,具有队尾入队和队头出队的特点。循环队列通过指针位置判断队满/空。二叉树特性包括:深度k的树最多2^k-1个节点,n节点完全二叉树深度为(log2n)+1。遍历方式有层序、前序(根左右)、中序(左根右)和后序(左右根)。哈夫曼树是一种带权路径最短的二叉树。
2025-08-22 20:08:45
51
原创 数据结构:栈
栈是一种基础数据结构,遵循"后进先出"(LIFO)原则,只能在栈顶进行插入(Push)和删除(Pop)操作。它具有入栈、出栈、取栈顶、判空等基本操作,可通过数组(顺序栈)或链表(链栈)实现。栈在递归调用、回溯算法、表达式求值和括号匹配等场景中应用广泛。其受限操作特性使其成为处理特定问题的理想选择,是数据结构学习的重要内容。
2025-08-22 09:41:59
410
原创 链表的核心:“增删改查”
链表核心操作摘要(150字) 链表的核心操作包括增删改查:增体现特性(头插O(1)/尾插O(n));删需谨慎内存释放(头尾节点处理不同);查是弱点(顺序访问O(n));改仅需更新数据域。此外需关注初始化/销毁(避免内存泄漏)及辅助功能(判空/长度/遍历)。不同链表类型操作差异显著:单向链表删除需找前驱,双向链表可直接删除,循环链表需维护闭环。学习重点在于指针操作、内存管理(malloc/free配对)、边界条件处理及算法思维。掌握这些即掌握链表精髓,为复杂算法奠定基础。 (注:实际字数147,保留关键差异对
2025-08-20 19:57:30
136
原创 C语言程序编程实例
本文展示两个C语言字符串处理程序:1) 单词逆序程序,通过两次反转实现"I love China"→"China love I",仅用指针变量;2) 自定义atoi函数,将字符串"123456"转为整数值123456,处理前导空格和正负号。两个程序均避免使用额外存储变量,仅通过指针操作完成功能。
2025-08-19 12:21:45
368
原创 数据结构:查找表
数据结构是研究数据元素间逻辑关系和存储方式的学科。主要分为逻辑结构(集合/线性/树形/图)和物理结构(顺序/链式存储)。算法具有输入输出、可行性等特性,通过时间/空间复杂度衡量优劣。查找表作为典型应用,顺序表适合频繁查找,链表适合频繁插入删除。工程中还发展出哈希表、平衡树等高效结构。头文件保护宏(如#ifndef)可防止重复包含导致的编译错误。
2025-08-18 21:02:05
1558
原创 认识 C 语言的文件 I/O
摘要: C语言文件I/O操作分标准I/O(库函数)和系统调用两类。标准I/O通过FILE*指针实现,含缓冲机制(行缓冲/全缓冲/无缓冲),函数如fopen、fread;系统调用通过文件描述符fd直接操作,函数如open、read。关键点包括:缓冲优化效率、文件定位(fseek/lseek)、权限控制(open的flags/mode),以及FILE*与fd的互转(fileno/fdopen)。标准I/O适合通用场景,系统调用更底层高效,两者可结合使用。
2025-08-13 21:35:28
1103
原创 熟悉LINUX系统
本文介绍了Linux系统中基于C库标准IO函数的文件操作。主要内容包括:1)Linux文件类型分类(普通文件、目录、设备文件等);2)标准IO函数使用流程:fopen打开文件(需指定r/w/a等模式)、选择读写函数(字符/字符串/二进制读写)、fclose关闭文件;3)通过cat和cp命令的实现示例演示文本和二进制文件操作;4)强调二进制文件必须使用fread/fwrite,文本文件处理需注意平台换行符差异。文章总结了文件操作的基本流程和注意事项,建议从文本读写开始实践,逐步掌握Linux"一切皆
2025-08-13 10:28:23
887
原创 C语言:结构体、共用体与枚举详解
摘要:结构体是C语言中用于组织不同类型数据的复合数据类型,可将相关数据打包存储。文章介绍了结构体的定义(如学生信息的学号、姓名等)、变量声明、成员访问(使用点运算符)、初始化赋值等基本用法。同时讲解了结构体在函数中的传参、内存对齐规则、共用体(union)和枚举(enum)的用途。结构体适用于学生管理、游戏角色等复杂数据场景,文末建议通过实践练习掌握结构体排序、共用体检测存储模式等应用。结构体能有效提升代码组织性和可读性,是C语言编程的重要工具。
2025-08-08 22:06:29
666
原创 C语言指针:补充
本文介绍了C语言中字符串指针、指针数组和二级指针的概念。字符串指针指向只读内存区的字符串常量,指针数组可存储多个字符串地址,二级指针用于处理指针数组。还涉及堆内存管理(malloc/free)、函数指针及main函数参数。关键概念对比表清晰区分了指针数组、数组指针、二级指针和函数指针的定义与用途。这些内容是C语言指针系统的核心知识,对理解内存操作和复杂数据结构至关重要。
2025-08-07 21:06:07
350
原创 C语言指针:基础使用
指针是C语言中强大但也容易出错的特性,理解指针的关键是明白它存储的是内存地址,通过地址我们可以访问和操作内存中的数据。// 输出10,*p表示访问p指向的内存。// 不能通过s修改字符串。// 指针变量,存放a的地址。// 指向整型的指针。// 指向字符的指针。
2025-08-06 21:07:57
201
原创 C语言:指针(一维字符串)
本文介绍了两个C语言字符串处理函数:intStrlen和Strncmp。intStrlen通过指针运算计算字符串长度,将起始地址与结束符位置的指针相减得到字符个数。Strncmp函数则比较两个字符串的前n个字符,返回字典序差值,使用const保证字符串不被修改,并处理了n为0或超过字符串长度的情况。文中通过示例代码和地址图解详细说明了实现原理,对比了标准库函数,并强调了边界条件处理和const关键字的重要性。这两个函数分别实现了安全的字符串长度计算和受限比较功能。
2025-08-06 20:16:39
834
原创 学习C语言指针:从入门到理解
本文介绍了C语言指针的基本概念和使用方法。指针是存储内存地址的变量,通过int *p形式定义。主要内容包括:指针变量的定义与初始化、通过指针间接访问数据、指针与数组的关系、指针运算规则,以及NULL指针等特殊指针。文章强调了指针的重要性,主要体现在函数返回多值和提高数据传递效率两方面。
2025-08-06 08:51:05
488
原创 C语言函数指南:从基础到实践
本文介绍了C语言函数的基本概念和使用方法。函数通过接收输入参数并返回处理结果来完成特定任务,其结构包括函数头和函数体两部分。讲解了如何设计函数(命名、参数、处理逻辑、返回值)、函数声明与定义的位置关系、函数调用的方式,并介绍了递归、数组参数、变量作用域和static关键字等进阶用法。
2025-08-05 08:51:49
808
原创 C语言预处理:让代码更灵活
所有预处理命令都以`#`开头,比如我们常见的`#include`和`#define`。预处理是编译代码的第一步,它能帮我们做很多有用的事情。printf("周长: %.2f\n", CIRCLE_L(radius));printf("面积: %.2f\n", CIRCLE_S(radius));SQUARE(1+2) // 会变成 1+2*1+2 = 5,而不是9。#include "myheader.h" // 自己的头文件用""// 相当于 3*4。- `""`先在当前目录找,找不到再去系统路径。
2025-08-05 07:48:13
220
原创 数组实战:排序和查找算法(无序数组)
本文介绍了三种基础排序算法(选择排序、冒泡排序、插入排序)和二分查找的实现原理。选择排序通过每次选择最小元素交换位置;冒泡排序通过相邻元素比较交换;插入排序类似整理扑克牌,逐个插入正确位置。二分查找则利用有序数组特性,每次排除一半可能。文章建议通过画图模拟、手动排序练习来理解算法,并强调掌握这些基础算法对提高编程能力的重要性。文中提供了各算法的C语言实现代码片段,帮助初学者直观理解算法工作原理。
2025-08-03 09:40:18
637
原创 C语言:二维数组和字符串数组
本文介绍了二维数组和字符串数组的基础知识。主要内容包括:1.二维数组的定义和初始化方法,包括完全初始化、部分初始化和自动补零等技巧;2.二维数组的内存布局和按行存储特性;3.数值型二维数组的典型操作(求和、求最大值);4.字符型二维数组(字符串数组)的特有操作方法,包括字符串比较、复制、排序等;5.编程实践中的注意事项,如数组越界、字符串长度控制等。文章通过具体代码示例演示了各种常见操作,适合C语言初学者学习二维数据处理的基本方法。
2025-07-31 05:22:46
624
原创 C语言字符串处理
摘要:本文介绍了C语言中字符串的基本概念和处理方法。字符串是以'\0'结尾的字符数组,可通过字符数组或直接赋值定义。常用字符串函数包括:gets/puts输入输出、strlen获取长度、strcpy复制、strcat拼接和strcmp比较。使用这些函数需包含<string.h>头文件,并注意数组长度要足够容纳'\0'。字符串处理是C语言编程基础,掌握这些函数能有效处理文本数据。
2025-07-31 05:14:29
238
原创 数组实战:基础操作笔记
本文介绍了C语言中数组的基本操作和常用算法。主要内容包括:1)数组定义与长度计算;2)查找最大值和第二大值的方法;3)数组反转的两种实现方式;4)合并两个有序数组的算法。
2025-07-30 08:46:54
185
原创 C语言学习:数组基础入门
本文介绍了C语言数组的基础知识,包括一维数组的定义、初始化和元素访问方法,以及遍历、找最大值、倒置等常见操作。重点讲解了字符数组与字符串的处理,强调字符串以'\0'结尾的特性,并提供了计算字符串长度和字符串逆序的实用练习。总结了数组作为C语言重要数据结构的学习要点,建议通过实际编码练习来掌握数组的使用。
2025-07-30 08:16:55
730
原创 C语言学习:循环结构入门
本文介绍了C语言中的三种循环结构:for、while和do-while循环。for循环适合已知循环次数的情况,while循环适用于条件驱动的循环,do-while循环保证至少执行一次。文中通过计算1-100和、寻找能被3整除的数等示例演示了各循环的用法,并讲解了break和continue控制语句的作用。最后提供了判断素数和寻找水仙花数等实用练习,帮助理解循环的实际应用。掌握这些循环结构对编写重复性任务程序至关重要,需要通过实践来熟练运用。
2025-07-30 08:11:08
626
原创 C语言学习:流程控制基础
本文介绍了C语言流程控制中的选择结构基础知识,包括关系运算(>、<、==等)和逻辑运算(&&、||、!)。重点讲解了if语句的三种形式(单分支、双分支、多分支)及其应用场景,如求最大值、判断闰年、分数等级转换等实例。还介绍了switch语句的用法和注意事项,以及条件运算符的简写形式。通过具体代码示例帮助理解选择结构的实现方式,为后续学习循环结构打下基础。
2025-07-27 21:36:54
451
原创 C语言输入输出:从字符到格式化
本文介绍了C语言基础语句和输入输出操作。语句分为控制语句、函数调用、表达式、空语句和复合语句五类。输入输出主要使用stdio.h库函数,包括字符I/O(getchar/putchar)、格式化I/O(scanf/printf)和字符串I/O(gets/puts,不推荐)。重点讲解了printf的格式控制(%d,%f等)和scanf的使用技巧(缓冲区处理、输入宽度限制等),并提供了实用示例(混合输入、错误处理、格式化对齐)。最后给出练习代码演示基本I/O操作,强调掌握这些基础对编写用户友好程序的重要性。
2025-07-26 08:18:35
1199
原创 C语言中的基本运算
本文介绍了C语言的基础运算操作,包括算术运算(加减乘除)、求余运算、自增自减、类型转换、随机数生成、赋值运算和逗号运算。重点讲解了除法运算的整数特性、求余运算的应用场景、自增自减的前后置区别、类型转换规则,以及随机数生成方法。文章强调编程基础的重要性,提醒注意运算中的常见陷阱,如除数不能为零、类型转换可能导致的精度损失等问题,建议通过练习熟练掌握这些基础运算操作。
2025-07-26 08:11:25
327
原创 C语言数据类型入门:从变量到整型
摘要:本文介绍了C语言中变量与常量的区别,重点讲解了整型数据的表示与转换方法。内容包括十进制、二进制、八进制和十六进制之间的转换技巧,变量的定义语法及命名规则,并提供了进制转换的实践练习。通过具体代码示例,帮助初学者理解整型数据的存储与运算基础知识,为后续编程学习打下基础。(150字)
2025-07-25 20:37:17
178
原创 C语言数据类型详解:从基础到高级
本文系统介绍了C语言基础数据类型的特点与应用。主要内容包括:1)编程语言比较,突出C语言的中级特性;2)整型数据的表示方法、进制转换(含示例)及存储方式(补码);3)浮点型数据的IEEE 754标准存储格式;4)字符型数据的ASCII编码与运算规则;5)常量类型后缀表示法。重点强调了整型溢出风险、浮点数比较精度问题等注意事项,以及数据类型的选择对程序性能的影响。通过进制转换实例和存储格式分析,帮助深入理解计算机底层数据表示原理。
2025-07-25 07:23:39
431
原创 初探C语言基本数据类型:从代码中学习技术规律
C语言数据类型基础学习总结:通过分析char.c、float.c和int.c三个示例文件,揭示了C语言数据类型的核心特点。char类型实际存储ASCII码值,可进行字符与数字转换;float/double类型存在精度问题,需注意比较方式和科学计数法表示;整型有不同存储大小,需防范整数溢出风险。学习规律强调实践验证、类型意识、存储大小认知、边界测试和类型转换理解,建议通过"学习-实验-验证"循环掌握编程技能。
2025-07-24 20:48:59
267
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人