第1节:链表 链表是一种基础的数据结构,由一组节点组成,每个节点包含数据和一个指向下一个节点的指针。 学习内容: 单链表:基本概念和实现(插入、删除、遍历) 双向链表:双向链接和双向遍历 循环链表:循环结构的链表 链表操作的复杂度分析 开始学习:单链表 单链表是一种简单的链表,其中每个节点包含数据和
13.1 内存对齐 1. 什么是内存对齐 内存对齐是指数据在内存中存放时按其类型大小的整数倍对齐的规则。这种对齐方式可以提高CPU的读取效率。 内存对齐规则: 数据类型的大小决定了其对齐边界。例如,int类型通常需要4字节对齐,即它的地址应该是4的倍数。 2. 使用#pragma pack调整对齐方
12.1 多线程基础 1. 什么是线程 线程是进程中的一个执行单元,每个线程都共享进程的内存空间,但有自己独立的栈空间。使用多线程可以使程序同时执行多个任务。 2. POSIX线程(pthread)库 POSIX线程库是C语言中用于多线程编程的标准库。它提供了创建、管理、同步线程的API。 编译时链
11.1 动态内存分配 在C语言中,动态内存管理主要通过以下函数实现: malloc(size_t size):分配指定大小的内存块,返回指向该内存块的指针。内存块的初始内容是未定义的。 calloc(size_t num, size_t size):分配一个内存块,能够容纳指定数量的对象,每个对象
9.1 结构体 1. 什么是结构体 结构体(struct)是C语言中一种用户自定义的数据类型,它可以将不同类型的变量组合成一个单一的数据类型。结构体在组织复杂数据结构(如数据库记录、树节点等)时非常有用。 定义结构体: struct 结构体名 { 数据类型 成员名; 数据类型 成员名
7.1 数组的基本概念 数组是一组相同类型的元素的集合,它们在内存中是连续存储的。数组的每个元素都有一个索引,通过索引可以访问数组中的每个元素。 1. 一维数组 声明和初始化: 数据类型 数组名[大小]; 数据类型 数组名[大小] = {值1, 值2, ..., 值n}; 示例: #include