数据结构
文章平均质量分 94
从含义、使用及模拟实现深入讲解数据结构的内容
山舟
这个作者很懒,什么都没留下…
展开
-
【C++】STL:list的使用及模拟实现
文章目录一、list的介绍二、list的使用1.构造函数2.遍历3.数据的插入与删除(1)尾部的插入与删除(2)头部的插入与删除(3)任意位置插入与删除三、总结一、list的介绍list是可以在常数范围内在任意位置进行效率为O(1)的插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素,关于双向链表的细节可以移步数据结构(二):链表。二、list的使用1.构造函数常用的构.原创 2021-09-25 22:13:10 · 967 阅读 · 15 评论 -
数据结构(六):排序(二)
文章目录前言一、快速排序1.单趟排序(1)左右哨兵法(2)挖坑法2.非递归实现快速排序3.优化:三数取中法二、归并排序1.递归2.非递归实现三、计数排序排序算法的比较感谢阅读,如有错误请批评指正前言在数据结构(六):排序(一)中介绍了直接插入排序、希尔排序、选择排序、堆排序和冒泡排序,本文继续介绍剩下的快速排序、归并排序和计数排序一、快速排序快速排序的基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均.原创 2021-05-30 16:47:28 · 571 阅读 · 22 评论 -
数据结构(六):排序(一)
文章目录一、排序二、使用步骤1.引入库2.读入数据总结一、排序示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')import ssl原创 2021-05-27 18:35:38 · 2039 阅读 · 20 评论 -
数据结构(五):堆
文章目录前言一、堆二、顺序存储二、堆的实现1.建堆2.读入数据总结前言在数据结构(四):二叉树中,树是通过链式结构来实现的。在本文中,堆将通过顺序结构实现。同样是树,为什么实现时存储方式不同呢?堆又有哪些特殊的性质呢?本文介绍的堆和操作系统虚拟进程地址空间中的不同,前者是一种数据结构,后者是操作系统中管理内存的一块区域分段。一、堆如果有一个数据的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中。且满足以下性质:(1)每个节点的值总原创 2021-05-09 16:03:01 · 3789 阅读 · 15 评论 -
数据结构(四):二叉树
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:在介绍堆的过程中可能用到树的知识提示:以下是本篇文章正文内容。一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsim原创 2021-05-07 20:03:57 · 26985 阅读 · 8 评论 -
数据结构(三):栈和队列
文章目录一、栈1.栈的概念和结构2.栈的实现(1)栈的结构(2)栈的初始化和销毁(3)数据入栈(4)数据出栈(5)取栈顶的元素(6)判断栈是否为空二、队列1.队列的概念和结构2.队列的实现(1)队列的结构(2)队列的初始化和销毁(3)数据入队(4)数据出队(5)得到队头队尾的数据(6)判断队列是否为空感谢阅读,如有错误请批评指正一、栈1.栈的概念和结构栈是一种特殊的线性表,只允许在固定的一端进行插入和删除元素的操作。进行数据插入和删除操作的一端成为栈顶,另一端称为栈底。栈中的元素遵循后进先出(LIF原创 2021-05-04 10:54:14 · 640 阅读 · 6 评论 -
数据结构(二):链表
文章目录一、链表的概念及其结构二、单链表的实现1.单链表的访问2.单链表头部插入数据3.单链表尾部插入数据4.单链表头部删除数据5.单链表尾部删除数据6.查找单链表中值为x的结点7.在某一结点的后面插入一个结点8.在某一结点的后面删除一个结点三、单链表的优劣四、 带头循环双向链表的实现1.双向链表的初始化2.双向链表尾部插入数据3.双向链表头部插入数据4.双向链表尾部删除数据5.双向链表头部删除数据6.寻找双向链表中值为x的结点7.在pos位置前插入一个结点8.删除pos结点9.得到链表的结点个数感谢阅读.原创 2021-05-02 13:47:18 · 2802 阅读 · 6 评论 -
数据结构(一):顺序表
文章目录一、概念及结构1.静态顺序表2.动态顺序表二、顺序表功能的实现1.顺序表的初始化、销毁2.数据的增加(1)头部插入数据(2)尾部插入数据3.数据的删除(1)头部删除数据(2)尾部删除数据4.任意位置插入、删除数据5.查找数据6.修改数据三、顺序表的优劣感谢阅读,如有错误请批评指正一、概念及结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:1.静态顺序表即使用定长数组存储数据。代码如下(示例):.原创 2021-04-12 16:46:05 · 1820 阅读 · 3 评论