数据结构
C
魔同
这个作者很懒,什么都没留下…
展开
-
数据结构(C)---双端队列(Deque)
本博客中的所有内容均为作者原创,如需转载,请注明出处。双端队列(Deque)是一种允许在两端进行插入和删除操作的数据结构。本博客的内容是基于作者的个人理解和经验,尽力确保信息的准确性和时效性,但不保证所有信息都完全正确或最新。博客中的内容仅供参考,不能替代专业人士的意见和建议。- **实现方式**:可以使用链表或数组实现,选择时应考虑内存管理和操作效率。- **双端队列**:支持在两端进行插入和删除操作,适合需要灵活访问的场景。下面是双端队列的简单实现,使用链表和数组两种方式。- 查看队尾元素(back)原创 2024-08-29 11:08:18 · 676 阅读 · 0 评论 -
C语言--静态链表
/ 获取一个空闲节点。原创 2024-08-21 10:00:00 · 510 阅读 · 0 评论 -
C语言--循环链表
循环链表的最后一个节点指向头节点,形成一个环。原创 2024-08-19 10:30:00 · 401 阅读 · 0 评论 -
C语言-- 双链表实现
双链表的每个节点包含指向前一个和后一个节点的指针。原创 2024-08-20 10:00:00 · 229 阅读 · 0 评论 -
C语言--单链表基本定义
选择使用时应考虑具体需求。2. **高效插入和删除**:在任意位置插入或删除节点时,只需调整指针,时间复杂度为 \( O(1) \)(给定位置)。1. **随机访问效率低**:无法通过索引直接访问元素,平均时间复杂度为 \( O(n) \)。1. **动态大小**:链表可以根据需要动态增长或缩小,避免了固定大小的限制。2. **额外内存开销**:每个节点需要存储指针,增加了内存开销。3. **内存利用率高**:不需要预留额外空间,内存使用灵活。1. **动态数据存储**:适用于需要频繁插入和删除的场景。原创 2024-08-17 22:00:00 · 147 阅读 · 0 评论 -
C语言--队列基本定义
2. **内存浪费(顺序实现)**:如果元素出队后,数组中的空间未被利用,可能造成浪费。1. **固定大小(顺序实现)**:如果使用数组实现,队列大小固定,可能导致溢出。3. **查看队头(Front/Peek)**:获取队列头部的元素,但不移除它。1. **入队(Enqueue)**:将元素添加到队列的尾部。2. **出队(Dequeue)**:从队列的头部移除元素。1. **简单易用**:队列的操作简单,符合自然的排队逻辑。4. **判断是否为空**:检查队列是否包含元素。### 队列基本定义。原创 2024-08-17 16:58:21 · 184 阅读 · 0 评论 -
C语言--队列
在C语言中,队列可以通过顺序存储和链式存储两种方式实现。以下是这两种实现的基本概念和示例代码。- **链式存储**:使用链表实现,动态分配内存,灵活性高,但需要额外的内存管理。链式存储队列使用链表来存储元素。每个节点包含数据和指向下一个节点的指针。顺序存储队列使用数组来存储元素。主要操作包括入队、出队和查看队头元素。- **顺序存储**:使用数组实现,简单易用,但可能存在容量限制。选择实现方式时,应根据具体需求进行权衡。### 1. 顺序存储实现。### 2. 链式存储实现。原创 2024-08-18 14:30:00 · 138 阅读 · 0 评论 -
C语言---顺序表(补充说明)
2. **插入和删除效率低**:在中间位置插入或删除元素时,需要移动其他元素,时间复杂度为 \( O(n) \)。4. **插入与删除**:在表中间插入或删除元素时,可能需要移动其他元素,时间复杂度为 \( O(n) \)。3. **支持随机访问**:可以通过索引直接访问任意元素,时间复杂度为 \( O(1) \)。1. **随机访问**:可以通过索引直接访问任意元素,时间复杂度为 \( O(1) \)。1. **连续存储**:元素在内存中是连续存放的,便于随机访问。- **数据域**:存储元素的数组。原创 2024-08-17 16:39:39 · 407 阅读 · 0 评论 -
C语言---栈
C语言栈的基本概念、顺序存储实现和链式存储实现原创 2024-08-16 16:53:21 · 460 阅读 · 0 评论 -
C语言--双链表
一个简单的双向链表的实现,包含基本的插入、删除和遍历功能,并在每行代码旁边添加了注释以便于理解。原创 2024-08-15 10:36:17 · 184 阅读 · 0 评论 -
C语言--单链表
/ 将前驱节点的next指向目标节点的next。// 将尾节点的next指向新节点。// 直接将新节点设为头节点。// 更新头节点为下一个节点。// 更新头节点为下一个节点。// 新节点指向当前头节点。// 临时指针指向头节点。原创 2024-08-14 17:51:23 · 375 阅读 · 0 评论 -
C语言顺序表-静态分配
if (ListInerst(L,位置,e))ListInsert(L,位置,数值)printf("失败\n");原创 2024-07-31 14:32:52 · 519 阅读 · 0 评论 -
顺序存储的类型表述
【代码】顺序存储的类型表述。原创 2023-07-29 13:03:21 · 104 阅读 · 0 评论