
数据结构
文章平均质量分 84
老衲有点帅
宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒
展开
-
C#[数据结构]之数组
数组是由相同类型的元素按顺序存储在一段连续的内存空间中而构成的数据结构。数组的长度是固定的,一旦定义后,其长度通常不可改变。数组是一种线性数据结构,元素通过索引(index)访问,索引通常从 0 开始递增。原创 2024-05-07 10:35:38 · 1288 阅读 · 2 评论 -
C#[数据结构]之堆(Heap)栈(Stack)
C# 程序在 CLR(Common Language Runtime)上运行时,内存被逻辑地划分为两个主要部分:栈和堆。除了栈和堆之外,CLR 还维护了其他一些内存区域,例如静态存储区域(Static Storage Area)、常量存储区域(Constant Storage Area)等。这些内存区域都有各自的特点和用途,可以帮助我们更好地管理程序内存和资源的使用。在 C# 程序运行时,栈和堆是其基本元素,它们组成了程序的运行环境,对程序的性能和稳定性有着重要的影响。原创 2023-07-24 18:02:19 · 3923 阅读 · 0 评论 -
[数据结构]链表之循环链表
需要注意的是,在循环链表中,插入和删除操作需要额外考虑最后一个节点的next指针和第一个节点的prev指针的修改。总之,循环链表是一种特殊的链表结构,在实现各种操作时需要注意其连续性和有序性,并针对特殊情况进行相应的处理。需要注意的是,在进行各种操作时,需要保证循环链表的连续性和有序性,以避免数据不一致等问题的发生。需要注意的是,在进行各种操作时,需要保证循环链表的连续性和有序性,即每个节点的next指针都指向下一个节点,并且最后一个节点的next指针指向头节点。但是,其实现简单,无需处理哈希冲突等问题。原创 2023-07-17 16:59:20 · 2515 阅读 · 2 评论 -
[数据结构]链表之单链表
单链表是一种常见的线性数据结构,由若干个节点组成,每个节点包含两部分:数据元素和指向下一个节点的指针。每个节点只有一个指针,通常称为 next 指针,它指向该节点的后继节点。头节点是第一个节点前面额外添加的一个节点,它不包含数据元素,但是包含对第一个节点的指针。单链表可以表示任意长度的序列,可以动态地插入、删除节点,使其具有灵活性和高效性。但由于每个节点只有一个指针,因此单链表只能从前往后遍历,不能反向遍历。以下是单链表常用的操作:创建链表:创建一个空链表,可选是否带有头节点。原创 2023-06-16 18:13:07 · 700 阅读 · 0 评论 -
[数据结构]链表之双链表
双向链表(Doubly Linked List)是一种常见的数据结构,与单链表相比,它增加了一个指向前驱节点的指针,因此每个节点除了有指向后继节点的指针外,还有一个指向前驱节点的指针。双向链表是一种常见的数据结构,与单向链表相比,它增加了一个指向前驱节点的指针,因此每个节点除了有指向后继节点的指针外,还有一个指向前驱节点的指针。与栈比较:双向链表和栈都可以实现FILO(先进后出)的数据结构,但是双向链表相比栈更加灵活,可以支持在任意位置插入和删除节点,而栈只能在栈顶插入和删除元素。时间复杂度为O(n)。原创 2023-06-29 17:39:02 · 973 阅读 · 0 评论 -
[数据结构]线性表之顺序表
顺序表是一种通过数组来实现的数据结构,其中的元素在内存中是连续存储的,每个元素占用固定大小的空间。总之,顺序表是一种常见的数据结构,具有优异的随机访问效率,但在插入、删除和搜索等操作上效率较低,使用时需要根据具体需求和应用场景进行选择。其操作的时间复杂度主要取决于元素的插入、删除和查找等操作,在实际应用中需要根据具体情况选择合适的算法和数据结构,并进行权衡和折衷。总之,顺序表是一种常见的数据结构,在需要随机访问和修改元素的场景中具有优异的性能表现。顺序表的空间复杂度为O(n),即需要存储n个元素的空间。原创 2023-07-04 16:32:05 · 304 阅读 · 0 评论