
从零学习Linux
文章平均质量分 76
SuperW
嵌入式学习者,知识我们一起共享
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构——树
树(Tree)是n(n≥0)个节点的有限集合T,它满足两个条件 :有且仅有一个特定的称为根(Root)的节点;其余的节点可以分为m(m≥0)个互不相交的有限集合T1、T2、……、Tm,其中每一个集合又是一棵树,并称为其根的子树树形表示法目录表示法。一个节点的子树的个数称为该节点的度数一棵树的度数是指该树中节点的最大度数。度数为零的节点称为树叶或终端节点度数不为零的节点称为分支节点除根节点外的分支节点称为内部节点。原创 2025-07-06 16:44:12 · 865 阅读 · 0 评论 -
数据结构——栈与队列的应用(球钟问题)
摘要:球钟是一种利用球的移动记录时间的装置,包含分钟(4球)、五分钟(11球)和小时(11球)三个栈。当队列出球时,依次判断各栈是否已满,满则清空栈球回队列。初始队列有27个球,三个栈为空。通过循环模拟球的移动过程,计算队列恢复原始顺序所需时间。代码实现使用链队列和顺序栈结构,通过出队入栈和出栈入队操作,最终输出恢复原始顺序的总分钟数。程序核心在于检查队列是否恢复升序排列,若满足则终止循环并输出结果。原创 2025-07-04 12:33:08 · 363 阅读 · 0 评论 -
数据结构——队列
本文介绍了队列的两种实现方式:顺序队列和链式队列。顺序队列采用数组存储,通过循环队列结构实现,重点解决了空队与满队的判断问题(留一个空位作为区分)。链式队列采用链表结构,通过头尾指针管理入队出队操作。文章详细讲解了两种队列的创建、入队、出队、判空、清空和释放内存等核心操作的实现代码,并展示了测试用例。两种队列都遵循先进先出(FIFO)原则,但链式队列在动态内存管理方面更为灵活,而顺序队列在内存使用效率上更优。原创 2025-07-04 09:37:31 · 1069 阅读 · 0 评论 -
数据结构——栈
本文介绍了栈的基本概念和两种实现方式。栈是一种后进先出(LIFO)的线性表,只能在栈顶进行插入和删除操作。文章详细阐述了顺序栈的实现,包括创建栈、入栈、出栈、清空栈和释放栈空间等操作的具体代码实现,并说明了内存管理的关键点。此外还简要介绍了链式栈的实现方式,对比了它与顺序栈在出栈操作上的区别。文章通过代码片段展示了栈的各种基本操作,包括结构体定义、初始化、内存申请与释放等核心流程。原创 2025-07-02 12:09:02 · 792 阅读 · 0 评论 -
c语言——指针知识点
if(strcmp(name[k],name[j])>0) //第i个字符串与其后字符串比较,如果比后面的大则改变k值。i++,p++) //这里就要对p指针初始化for(p=p-10;char * const p[]="hello word" p[0]='m'是合法的,p=“handsome”非法。&与*的优先级是一样的,但是自右向左结合,先*p,就是a的值,再&a,即取a的地址。原创 2024-09-14 19:51:12 · 1358 阅读 · 0 评论 -
尾插法与头插法
牛牛从键盘输入一个长度为 n 的数组,问你能否用这个数组组成一个链表,并顺序输出链表每个节点的值。输入描述:第一行输入一个正整数 n ,表示数组的长度输出描述:制作一个链表然后输出这个链表的值示例1输入:4 5 4 2 1复制输出:5 4 2 1复制说明:请实现链表后再遍历输出结果!原创 2025-06-22 10:15:08 · 433 阅读 · 0 评论 -
冒泡排序的用法
摘要:本文介绍了使用C语言实现书籍按价格升序排序的方法。通过动态分配内存存储书名和价格,采用冒泡排序算法对价格进行排序,并同步交换书名和价格的位置。关键点包括:1)使用char**动态分配字符串数组;2)冒泡排序的双重循环结构;3)交换时同时处理书名和价格;4)最后释放所有动态分配的内存。示例代码完整展示了从输入、排序到输出的全过程,适用于处理可变数量的书籍数据排序需求。(135字)原创 2025-07-02 08:20:42 · 314 阅读 · 0 评论 -
数据结构——单链表反转、相邻节点最大值、有序链表合并
本文介绍了三种链表操作算法:1.单链表反转:通过头插法实现,需处理空链表和单节点特殊情况。2.求相邻节点最大值:使用快慢指针遍历链表,记录相邻节点和的最大值及其位置,需处理链表长度不足的情况。3.有序链表合并:比较两个链表节点值,将较小值节点依次插入新链表,最后处理剩余节点。每种算法都包含特殊情况处理和详细实现步骤,代码示例展示了完整的操作流程。原创 2025-07-01 12:08:51 · 470 阅读 · 0 评论 -
数据结构——线性表的链式存储
如图中的listnode A 它的存储位置是在栈上,用A去访问结构体的data是A.data=value;用p则是还有一种是存放在推上的,如下。原创 2025-07-01 09:43:02 · 547 阅读 · 0 评论 -
数据结构知识(线性表顺序存储)
本文介绍了数据结构的基本概念和线性表的顺序存储实现。主要内容包括:1) 数据结构的定义及逻辑结构(集合、线性、树形、图状)与存储结构(顺序、链式、索引、散列);2) 线性表的顺序存储特点及实现方法,通过sqlist.h、sqlist.c和test.c三个文件构建;3) 详细讲解了顺序表的基本操作实现,包括创建链表、插入/删除元素、查找、合并等功能的代码实现原理;4) 重点分析了删除重复元素的算法,采用双重循环和位置标记的方法高效处理。文章通过具体代码示例展示了顺序表从创建到各种操作的完整实现过程。原创 2025-06-30 08:24:47 · 881 阅读 · 0 评论 -
链表添加节点
题目要求将数组转换为链表并在指定位置插入新节点。首先用动态数组接收输入数据,然后采用尾插法构建链表。接着遍历到第i个节点位置,创建新节点(值为i)并插入其后。最后输出修改后的链表并释放内存。示例输入5 3 [5,4,8,6,3],输出链表5→4→8→3→6→3。关键步骤包括:数组转链表、节点定位与插入、内存管理。该算法时间复杂度为O(n),空间复杂度O(n)。(150字)原创 2025-06-30 08:23:49 · 350 阅读 · 0 评论 -
Make与Makefile
PHONY:clean 是生成一个为目标文件,防止出现问题的。原创 2025-06-28 08:46:39 · 164 阅读 · 0 评论 -
C语言高级编程
本文介绍了C语言编程中的几个核心知识点:1) GCC编译器的基本使用和调试方法;2) 条件编译的语法规则;3) 结构体的定义、使用及内存对齐问题;4) 结构体数组和指针的用法;5) 共用体特性;6) typedef重命名技巧;7) 动态内存管理。重点解析了结构体的字节对齐机制(如18字节结构体实际占用20字节)、结构体指针的内存分配注意事项(避免段错误)以及堆内存的正确使用方法(malloc/free操作)。这些内容涵盖了C语言编程中数据结构处理和内存管理的关键技术。原创 2025-06-27 15:28:23 · 574 阅读 · 0 评论 -
Shell脚本
本文简要介绍了Shell脚本编程的基础知识,包括Shell语言特点、编写执行流程、变量分类及使用、主要控制语句和函数等内容。Shell是解释型语言,通过.sh文件编写,需赋予执行权限后运行。变量分为用户自定义、位置、预定义和环境变量四类。文章讲解了if、case、for、while等流程控制语句的语法,以及函数定义和参数传递方法。最后提供了更详细讲解的CSDN文章链接,适合初学者快速了解Shell编程基础。原创 2025-06-27 09:59:37 · 733 阅读 · 0 评论 -
从零学习linux(2)——管理
用户名、口令、用户ID(UID)、用户主目录(HOME)、用户shell。原创 2025-06-24 20:28:07 · 517 阅读 · 0 评论 -
从零学Linux(1)——软件包管理与shell编程
shell是一个命令行解释器Linux中的shell就是linux内核的一个外层保护工具,并负责用户与内核之间的交互。原创 2025-06-22 10:55:56 · 590 阅读 · 0 评论