数据结构
文章平均质量分 88
数据结构分享
Duck Bro
C/C++优质创作者,阿里云专家博主,学习C/C++,MySQL等相关知识,分享所学 与大家一起进步一起学习 点点关注 持续更新!!!
展开
-
数据结构:顺序表(动态顺序表)
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存。动态顺序表:使用动态开辟的数组存储。静态顺序表:使用定长数组存储元素。在数组上完成数据的增删查改。原创 2024-11-09 22:56:33 · 557 阅读 · 0 评论 -
数据结构:时间复杂度&空间复杂度
因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。原创 2024-11-09 20:32:46 · 653 阅读 · 0 评论 -
数据结构:概念篇
数据结构:是在内存中管理数据,对数据进增删查改。如顺序表、链表、队列、栈。算法:对存储的数据进行处理,如排序、查找。原创 2024-10-25 18:44:48 · 373 阅读 · 0 评论 -
数据结构:专栏开篇
专栏说明:本专栏用于数据结构复习,文章中出现的代码由C语言实现,在专栏中会涉及到部分OJ题目,如对你学习有所帮助,可以点赞鼓励一下博主喔~~~💓原创 2024-10-24 17:26:04 · 725 阅读 · 0 评论 -
数据结构入门 — 二叉树的概念、性质及结构
二叉树是一种数据结构,由一组节点组成,每个节点最多有两个子节点,称为左子节点和右子节点。二叉树可以为空树,也可以是一个只有根节点而没有子节点的单节点树,或者是一个有多个节点的树,每个节点都有且仅有一个父节点。原创 2023-09-17 16:31:51 · 831 阅读 · 36 评论 -
数据结构入门 — 树的概念与结构
树是一种非线性数据结构,它由节点和边组成。树结构通常被用来表示层次化的关系,例如组织结构、文件系统、HTML文档等等。树的基本概念有根节点、叶子节点和子树。树的深度是从根节点到叶子节点的最长路径长度。树的高度是从节点到叶子节点的最长路径长度。树的种类有很多,常见的有二叉树、二叉搜索树、平衡二叉树、红黑树、B树、B+树和Trie树等等。它们有不同的特性和适用场景。原创 2023-09-16 13:34:59 · 975 阅读 · 37 评论 -
数据结构入门 — 队列
队列是一种数据结构,它遵循先进先出(First-in, First-out)原则。队列可以看作是一条排队等待服务的线程,其中最先加入队列的元素最先被处理,而最后加入队列的元素最后被处理。队列有两个端点:队头和队尾。元素从队尾进入队列,从队头出队。队列的基本操作包括入队(enqueue)和出队(dequeue),以及获取队头和队尾元素的操作。队列在计算机科学中有广泛的应用,例如任务调度、缓存管理、路由算法等。原创 2023-09-02 19:13:55 · 1985 阅读 · 44 评论 -
数据结构入门 — 栈
栈(Stack)是一种特殊的线性数据结构,它的特点是仅允许在一端进行插入和删除操作。这一端被称为栈顶(Top),另一端称为栈底(Bottom)。栈的操作模式为后进先出(Last In First Out,LIFO),是一种简单的“先进后出”的顺序结构。原创 2023-09-01 18:18:28 · 2449 阅读 · 31 评论 -
数据结构入门 — 链表详解_双向链表
双向链表(Doubly Linked List)是一种链表数据结构,它的每个节点都含有两个指针,一个指向前一个节点,一个指向后一个节点。相比较于单向链表,双向链表可以双向遍历,即可以从头到尾或从尾到头遍历链表。在双向链表中,每个节点包含两个指针域和一个数据域。其中,一个指针指向前驱节点,另一个指针指向后继节点。这两个指针使得双向链表的插入、删除等操作不需要像单向链表那样需要遍历整个链表来寻找前驱节点,提高了链表的操作效率。带头双向循环链表的基本概念和常见操作。原创 2023-08-25 20:40:23 · 1681 阅读 · 28 评论 -
数据结构入门 — 链表详解_单链表
定义:单链表是一种数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。插入操作:单链表的插入操作需要先找到要插入位置的前一个节点,然后将新节点插入到其后。删除操作:单链表的删除操作需要先找到要删除的节点的前一个节点,然后将其指针指向下一个节点即可。遍历操作:单链表需要从头节点开始依次遍历各个节点,获取其中存储的数据。链表反转:单链表的反转操作是将链表中的节点从后往前连接,最后将原来的头节点变为尾节点。原创 2023-08-24 16:35:55 · 860 阅读 · 14 评论 -
数据结构入门 — 顺序表详解
顺序表是一种线性表,它的重点是:物理结构:顺序表的数据元素在内存中是连续存放的,即使用一段连续的存储空间来存储线性表的元素。逻辑结构:顺序表是一种线性表,它的元素在逻辑上是依次排列的。数据操作:顺序表支持基本的数据操作,包括插入、删除、查找等操作。其中,插入和删除操作需要移动大量元素,时间复杂度较高,而查找操作可以通过使用二分查找等算法来提高效率。容量管理:顺序表的容量是由数组的长度来决定的。如果数组长度不够,顺序表需要进行扩容操作,如果数组长度过长,会浪费内存空间。原创 2023-08-23 23:32:45 · 2764 阅读 · 40 评论 -
数据结构入门 — 时间复杂度、空间复杂度
时间复杂度和空间复杂度的介绍算法效率通常由时间复杂度和空间复杂度来衡量。时间复杂度: 表示算法在处理数据时所需要的运算次数与数据规模之间的关系。空间复杂度: 表示算法在处理数据时所需要的存储空间与数据规模之间的关系。原创 2023-08-11 01:27:40 · 1671 阅读 · 42 评论 -
【C语言】通讯录3.0 (文件存储版)
通讯录是一种记录联系人信息的工具,包括姓名、电话号码、电子邮件地址、住址等。3. 文件存储版:将数据存储在文件中,可以持久保存数据并随时读取。但是存储在文件中的数据需要进行IO操作,因此相比于内存操作来说效率较低。此外,文件存储版不适用于需要频繁修改的数据。文件操作应用实例:通讯录3.0(文件存储版)原创 2023-08-01 23:31:18 · 498 阅读 · 7 评论 -
【C语言】通讯录2.0 (动态增长版)
1.通讯录是一种记录联系人信息的工具,包括姓名、电话号码、电子邮件地址、住址等。2. 动态增长版:可以在程序运行期间根据需要动态增加内存大小,因此适用于处理不确定数据大小的情况。但是动态增长的内存需要手动释放,否则会导致内存泄漏。3.静态版通讯录改进,动态增长通讯录原创 2023-07-31 15:39:21 · 544 阅读 · 13 评论 -
【C语言】通讯录1.0 (静态版)
通讯录是一种记录联系人信息的工具,包括姓名、电话号码、电子邮件地址、住址等。通讯录可以帮助人们管理自己的联系人,让人们更轻松地与他人保持联系。通讯录静态版:在程序编译时就确定了内存大小,程序运行期间内存大小不会发生变化,因此对于需要处理大量数据或者不确定数据大小的情况不适用。原创 2023-07-29 00:27:24 · 629 阅读 · 17 评论