- 博客(20)
- 收藏
- 关注
原创 数据结构代码分享-7 链式队列
这段代码实现了一个基于链表的队列(linkqueue)数据结构。主要功能包括:1)创建空队列;2)数据入队(inLinkQueue);3)数据出队(outLinkQueue);4)判断队列是否为空(isEmptyLinkQueue);5)获取队列长度(lengthLinkQueue);6)清空队列(clearLinkQueue)。队列采用带头节点的链表实现,使用front和rear指针分别指向队首和队尾。代码分为头文件(linkqueue.h)和实现文件(linkqueue.c),包含了必要的错误处理和内存
2025-08-20 16:00:00
158
原创 数据结构代码分享-6 顺序队列
该代码实现了一个循环队列数据结构,包含队列创建、判空/满、入队、出队等基本操作。队列使用数组存储数据,通过front和rear指针实现循环特性。主要函数包括:createEmptySequeue()创建空队列,isFullSequeue()和isEmptySequeue()判断队列状态,inSequeue()和outSequeue()实现数据入队出队,lengthSequeue()获取队列长度,clearSequeue()清空队列。该实现通过取模运算处理队列边界条件,确保队列空间的循环利用。
2025-08-20 08:00:00
171
原创 数据结构代码分享-5 链式栈
该程序实现了基于链表的栈结构。主要功能包括:创建空栈、入栈、出栈、判断栈空、清空栈、获取栈长度以及获取栈顶元素等操作。通过动态内存分配实现链式存储,使用二级指针操作栈顶指针。程序分为头文件(linkstack.h)和实现文件(linkstack.c)两部分,定义了栈节点结构体和基本操作函数接口,采用NULL表示空栈状态,并包含必要的错误处理机制。
2025-08-19 20:00:00
200
原创 数据结构代码分享 -3双向链表
摘要:本文实现了一个C语言的双向链表数据结构,包含创建空链表、插入/删除节点、遍历链表、查找/修改数据等操作。双向链表通过prior和next指针实现双向连接,头尾指针封装在结构体中便于管理。关键功能包括:在指定位置插入/删除节点时区分尾部和中间位置处理;支持正向和反向遍历;提供删除所有匹配数据节点的高效实现。该实现通过动态内存分配管理节点,并包含错误检查和边界条件处理。
2025-08-18 18:30:00
163
原创 数据结构代码分享-2 单项链表
本文实现了一个带头节点的单向链表操作库,包含11个核心功能:创建空链表、计算长度、插入/删除节点、链表遍历、判空、清空链表、修改节点数据、查找数据位置、按值删除节点以及链表转置。代码通过link.h定义链表结构体和函数接口,link.c完成具体实现,包括完善的错误处理机制。测试代码展示了基本操作:创建链表、插入3个节点、显示链表、删除节点等。特别实现了高效的链表转置算法,通过断开原链表并逐个节点插入新链表头部完成。
2025-08-18 08:00:00
178
原创 数据结构代码分享-1 顺序表
本文实现了一个顺序表的基本操作,包括创建空表、插入数据、删除数据、查找修改数据等功能。代码分为三个文件:add.c包含具体实现,add.h定义数据结构和函数声明,main.c测试功能。实现的关键操作包括:判断表满/空、在指定位置插入/删除数据、修改元素值、查找元素位置等。该顺序表使用数组存储数据,通过last指针记录有效元素位置,提供了完整的数据结构操作接口。测试代码验证了各功能的正确性,最后释放了内存空间。
2025-08-17 15:00:00
188
原创 知识点汇总linuxC高级-4 c语言的进阶应用
本文介绍了C语言工程开发中的关键知识点:1. 多文件组织方式,包括.h头文件的作用和#include指令的使用区别;2. 条件编译的两种方式(宏定义判断和宏值判断);3. GCC编译的四个步骤(预处理、编译、汇编、链接);4. Make工具的使用方法,包括Makefile编写规则、变量定义和自动变量;5. GDB调试的基本流程和常用命令;6. 指针函数和函数指针的区别与使用方法。文章重点讲解了工程管理中的编译构建和调试技巧,为C语言项目开发提供了系统性的指导。
2025-08-17 08:00:00
583
原创 知识点汇总linuxC高级-3 shell脚本编程
本文介绍了Shell脚本编程的基础知识,主要包括三个部分:1)Shell脚本基础,包括脚本创建和执行方法;2)Shell变量系统,涵盖环境变量、自定义变量和特殊变量;3)Shell编程结构,详细说明了条件判断、循环控制等语句的使用。重点讲解了if/case条件语句、for/while循环语句的语法格式,以及expr/let运算方式和test测试命令的应用。文章还特别强调了Shell作为解释型语言的特点,以及变量定义、取值和运算时的特殊注意事项,为Shell脚本编程提供了清晰的入门指引。
2025-08-16 15:16:48
866
原创 知识点汇总linuxC高级 -2系统命令压缩与链接
本文摘要总结了Linux系统维护常用命令,分为四大部分:1)基础命令包括man手册查询、用户切换(su)、终端输出(echo)等;2)用户管理涵盖添加/删除用户及权限设置;3)进程管理详解ps/top/kill等进程监控工具及优先级调整;4)文件系统操作包含查找/链接/压缩命令,重点区分硬链接与软连接特性,并介绍gzip/bzip2/xz/tar等压缩工具的使用方法。全文系统梳理了Linux运维核心命令,覆盖用户、进程、文件三大管理维度。
2025-08-16 14:24:27
821
原创 知识点汇总LinuxC高级 -1
本文介绍了嵌入式系统和Linux操作系统的基础知识。嵌入式系统是专用计算机系统,具有软硬件可裁剪特性。文章详细对比了UNIX和Linux的区别,包括开源性和硬件兼容性差异。同时讲解了Linux系统架构的分层结构(应用层、内核层、硬件层)及其核心功能。重点介绍了Linux常用命令,包括系统版本查看、关机重启指令、软件包管理(dpkg/apt)以及Shell基本命令格式和特殊字符用法(通配符、管道、重定向等)。还涉及历史记录查询和环境变量设置等内容,为Linux初学者提供了系统的入门指导。
2025-08-16 12:02:13
988
原创 io--day04
但是需要考虑临界资源(临界资源包括同一个文件,全局变量等)访问的问题,进程间的通信相对复杂,需要借助进程间的通信机制(借助3g-4g的的内核空间)vfork(): 保证子进程先运行,在调用exec()或exit()之前,与父进程数据共享,在exec()或exit()调用之后,父进程才能运行。共享的资源:可执行的指令,静态的数据,进程中打开的文件描述符,信号处理函数。如果子进程退出,父进程没有退出。通过父子进程完成对文件的拷贝(cp),父进程从文件开始到文件的一半开始拷贝,子进程从文件的一半到文件末尾。
2024-11-13 20:58:35
561
原创 io进程的归纳总结--day02
IO进程(day02文件IO)标准IO补充fread fwrite 读写二进制文件示例代码:将一个int类型的数组写到文件中,再读出来偏移函数 rewind fseek ftell文件IO文件IO是POSIX提供的一组内核层向上的输入输出的函数接口文件IO的特点没有缓存机制每次调用都会引起系统调用。围绕文件描述符进行操作的,文件描述符是一个非负的整数依次进行分配。文件IO默认打开三个文件描述符0(标准输入),1。
2024-11-11 18:33:02
566
原创 10天速通c基础--day06
出现的原因有:访问不存在的内存地址、访问系统保护的内存地址 、访问只读的内存地址、空指针废弃 (eg:malloc与free释放后,继续使用) 、堆栈溢出、内存越界 (数组越界)p+n:向高地址方向(暂时)移动n个数据单位(int:4 char:1);//指针初始化,可以赋值为NULL;p++:向高地址方向移动一个数据单位(int:4 char:1);只有在定义指针时,*表示定义指针的标志,其他情况下*表示取内容。//定义指针的同时直接赋值。//先定义指针,后赋值。
2024-11-11 09:56:09
1594
原创 10天速通c基础--day05
sizeof计算包括'\0',strlen不包括'\0'假设第一个元素最小,和后边每一个进行比较,比较过程中遇到了更小值,暂存下标位置,直到一轮比较结束,再把最小值和最左边位置交换;只有在定义数组时,[ ]里表示元素个数,其他情况下,[ ]里表示索引。访问: 数组名[行下标][列下标] 下标从0开始。数据类型 数组名[行数][列数];
2024-11-11 09:46:15
762
原创 10天速通c基础--day04
按字节赋值 int 4字节 1字节=8位 00000001 00000001 00000001 00000001。只有在定义数组时,[ ]里表示元素个数,其他情况下,[ ]里表示索引。/**/ 多行注释 选中一片代码 ctrl shift a 不支持嵌套多行注释。A. 死循环,不能确定次数 B. 6 C. 10 D. 1。可单独赋值a[0]=2;参数:s:数组首地址 n:字节大小 size_t==int。参数:s:数组首地址 n:字节大小 c:要设置的值。数组名也是数组首地址,是一个地址常量,不能被修改。
2024-11-09 12:39:31
645
原创 10天速通c基础--day03
写程序实现功能:读入两个整数(data1和data2)和一个运算符(op),计算表达式data1 op data2 的值.其中op可以为+、-、*、/四个符号中的任一种(用switch语句实现)switch语句中,如果没有break,会从符合条件的分支开始一直执行下去,直到遇到break为止或switch运行结束。输入任意两个数,输出两数之间(包括这两个数)偶数之和。例:输入2和6或者6和2,输出12。终端输入一个整数,判断有几位为1(5:101 2位)printf("a的值为:%d b:%d c:%c。
2024-11-09 12:25:38
825
原创 十天速通c基础--day02
(表达式1,表达式2,表达式3,...,表达式n)"hello" 5个字符+'\0'字符串结束标志 == 6个字符。逻辑与运算中,前边表达式结果为假,后边表达式不再执行,返回假。逻辑或运算中,前边表达式结果为真,后边表达式不再执行,返回真。堆区:程序员手动开辟(malloc)、回收(free)栈区:系统自动开辟、回收 (函数体内部定义的变量)全局区、静态区: 全局变量、static修饰的变量。a=3,b=5,对a和b的值进行交换。表达式2 : 表达式3;用" "包裹 '\0'字符串结束标志。
2024-11-09 12:06:01
587
原创 十天速通c基础--day01
大纲:基础内容:进制转换、词法符号(关键字、运算符、标识符、分隔符、标点符号)、变量常量、输入输出 分支语句(if_else,switch_case)、循环语句(for,while,do_while)、循环控制语句(break,continue)数组:一维数组、二维数组、字符数组、冒泡排序、选择排序指针:一级指针、二级指针、指针数组、数组指针、指针和数组函数:函数基本用法、string函数族、开辟堆区空间、递归函数结构体:结构体变量、结构体数组、结构体指针共用体、枚举linux命令。
2024-11-09 11:45:41
2269
原创 io进程的归纳总结--day01
不同的操作系统只要移植了C库就可以使用,它是在系统调用之前做了一个二次封装,相当于是间接的进行了系统调用。可移植性强,可以在不同的系统环境下进行使用1.1 标准IO调用逻辑(了解)标准IO读写文件if(是linux操作系统)调用linux的系统函数if(是windows操作系统)调用的windows系统函数if(是macos操作系统)调用的macos系统函数。
2024-11-08 20:31:46
1780
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅