学习笔记
文章平均质量分 70
ysc200207212916
这个作者很懒,什么都没留下…
展开
-
进程线程笔记
进程和线程是操作系统中非常重要的概念,对于编程人员来说,理解和掌握进程和线程的概念是至关重要的。使用fork()函数可以创建一个新的进程,新进程是原进程的副本,它们共享代码段、数据段和堆栈。创建一个新的进程需要分配独立的地址空间和系统资源,而创建一个新的线程只需要为线程分配堆栈空间。进程和线程是操作系统中的重要概念,对于编程人员来说,理解和掌握进程和线程的概念是非常重要的。而线程之间的并发性较高,因为线程共享进程的资源,线程的切换开销较小。线程的切换也比进程的切换快速,因为线程共享进程的资源。原创 2023-08-28 20:03:24 · 16 阅读 · 1 评论 -
Linux文件IO笔记
在这个示例中,我们首先使用`fopen()`函数打开一个名为`example.txt`的文件,并指定打开模式为`r+`,即以读写模式打开文件。然后,我们使用`fseek()`函数将文件指针移动到文件开头,并使用`fwrite()`函数将新数据写入文件。在打开文件时,程序会与操作系统进行交互,操作系统会根据文件路径找到对应的文件,并将文件的相关信息(如文件大小、文件指针等)加载到内存中。关闭文件时,程序会将内存中的文件相关信息写回操作系统,操作系统会关闭与文件相关的所有资源。// 关闭文件并保存更改。原创 2023-08-28 19:55:10 · 16 阅读 · 1 评论 -
数据结构中的重难点2
在访问该节点的同时,将其子节点入队。广度优先搜索会先访问根节点,然后依次访问根节点的所有邻居节点,接着访问邻居节点的邻居节点,以此类推。例如,在单链表中,删除一个元素需要先找到该元素的前驱节点,然后将前驱节点的指针指向该元素的后继节点,最后释放该元素的内存空间。如果需要在数组中插入或删除一个元素,就需要先创建一个新的数组,然后将旧数组中的元素复制到新数组中,最后删除旧数组并使用新数组。例如,在二叉树中,层序遍历会首先访问根节点,然后访问第二层的左节点和右节点,接着访问第三层的左节点和右节点,以此类推。原创 2023-08-17 18:28:21 · 19 阅读 · 1 评论 -
数据结构中的重难点
需要熟练掌握各种排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序、希尔排序等)和查找算法(顺序查找、二分查找、哈希查找、二叉查找树、平衡二叉树等)。线性表和链表是最基本的数据结构,需要熟练掌握单链表、双链表、循环链表、双向循环链表的创建、插入、删除、查找等操作,以及线性表的各种遍历方法(如顺序遍历、递归遍历、迭代遍历等)。算法设计与分析是数据结构课程的核心内容,需要掌握基本的算法设计方法(如分治、贪心、动态规划、回溯等)和算法分析方法(如时间复杂度、空间复杂度等)。原创 2023-08-17 17:48:49 · 202 阅读 · 1 评论 -
数据结构学习笔记
顺序存储是将数据元素存储在一段连续的内存空间中,数据元素之间的逻辑关系通过存储位置的相邻关系来表示。链式存储是将数据元素存储在不连续的内存空间中,每个数据元素包含一个指向其直接后继元素的指针。线性结构中的数据元素之间存在一对一的关系,即每个数据元素只有一个直接前驱和一个直接后继。图结构中的数据元素之间存在多对多的关系,即每个数据元素可以有多个直接前驱和多个直接后继。逻辑结构是数据对象中数据元素之间的逻辑关系,包括集合结构、线性结构、树形结构和图结构。数据对象是具有相同性质的数据元素的集合。原创 2023-08-17 17:47:04 · 16 阅读 · 1 评论 -
c高级笔记
void * 类型的指针 可以赋值 void *p = &a;*p 不行 *(int*)p 可以的。void * (void *) 是 一个函数类型 这个类型的函数 有一个 void*类型的返回值。先*p == a[0] 然后 a[0] = a[0]+1;//*arr++ == *(arr++) == 先*arr用 然后 arr=arr+1;*p++ == 先*p == a[0] 然后 p = p+1;先*p == a[0] 然后 然后 a[0] = a[0]+1;原创 2023-08-09 19:16:03 · 14 阅读 · 1 评论 -
Linux基础笔记
linux基础笔记原创 2023-08-09 17:31:17 · 13 阅读 · 1 评论