
数据结构
文章平均质量分 59
数据结构
李憨憨_
这个作者很懒,什么都没留下…
展开
-
数据结构(15)---排序(冒泡排序, 快速排序, 归并排序, 计数排序)
排序文章目录排序交换排序冒泡排序快速排序(简单认识)归并排序交换排序冒泡排序冒泡排序的特性总结:冒泡排序是一种非常容易理解的排序时间复杂度:O(N^2)空间复杂度:O(1)稳定性:稳定快速排序(简单认识)归并排序...原创 2021-07-25 10:34:27 · 216 阅读 · 5 评论 -
数据结构(14)---排序之插入排序(直接插入排序, 希尔排序)和选择排序(直接选择排序, 堆排序)
排序文章目录排序排序的概念及其应用常见的排序算法插入排序直接插入排序希尔排序排序的概念及其应用排序的概念:排序: 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。比如说这里有一些数据, 若需要我原创 2021-07-24 10:18:31 · 702 阅读 · 15 评论 -
数据结构(13)---二叉树之链式结构(前序遍历, 中序遍历, 后序遍历, 层序遍历)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2021-07-23 11:10:31 · 530 阅读 · 5 评论 -
数据结构(12)---二叉树之顺序结构
二叉树文章目录二叉树二叉树的顺序结构及实现二叉树的顺序结构堆的概念及结构堆的创建堆向下调整算法二叉树的顺序结构及实现二叉树的顺序结构普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。堆的概念及结构如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},原创 2021-07-22 14:15:04 · 840 阅读 · 18 评论 -
数据结构(11)---二叉树
二叉树文章目录二叉树树的概念及结构树的概念树的结构树的表示二叉树的概念及结构二叉树的概念特殊的二叉树二叉树的性质二叉树的存储顺序存储链式存储树的概念及结构树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集Ti(1<= i原创 2021-07-21 17:28:52 · 2795 阅读 · 27 评论 -
数据结构(10)---队列之环形队列
环形队列文章目录环形队列什么是环形队列循环队列的实现第一种实现第二种实现什么是环形队列环形队列也是队列的一种数据结构, 也是在队头出队, 队尾入队;只是环形队列的大小是确定的, 不能进行一个长度的增加, 当你把一个环形队列创建好之后, 它能存放的元素个数是确定的;一般我们实现这个环形队列是通过一个连续的结构来实现的;虽然环形队列在逻辑上是环形的, 但在物理上是一个定长的数组;那如何在逻辑上形成一个环形的变化, 主要是在头尾指针当走到连续空间的末尾的时候, 它会做一个重置的操作循环队原创 2021-07-21 14:13:37 · 10931 阅读 · 3 评论 -
数据结构(9)---队列
队列文章目录队列队列的概念及结构队列的实现队列的概念及结构队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头队列的实现#include <stdio.h>#include <stdlib.h>typedef int QDataType;typedef struct QNode{ QDataT原创 2021-07-21 11:18:35 · 137 阅读 · 7 评论 -
数据结构(8)---栈
栈文章目录栈栈的概念及结构入栈与出栈栈的实现栈的定义栈的初始化检查容量入栈出栈获取栈顶元素判断栈是否为空栈的概念及结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。对于栈这种结构, 你不能在中间或者底部操作数据, 只能在栈顶插入或删除数据,原创 2021-07-20 15:19:09 · 124 阅读 · 4 评论 -
数据结构(7)---双向链表
双向循环带头链表文章目录双向循环带头链表节点的类型创建节点初始化链表尾插尾删头插节点的类型它的next始终是不为空的创建节点初始化链表尾插它不用去遍历所有节点, 它通过head->prev的指向就可以拿到最后一个节点, 所以尾插效率较高尾删头插...原创 2021-07-20 10:29:54 · 195 阅读 · 5 评论 -
数据结构(6)---线性表(链表OJ2)
链表OJ练习(2)实例七OR36.链表的回文结构题目描述:实例八160.相交链表题目描述:实例九141.环形链表题目描述:实例十142.环形链表 II题目描述:实例十一138.复制带随机指针的链表题目描述:实例十二147.对链表进行插入排序题目描述:实例十三JZ56.删除链表中重复的节点题目描述:...原创 2021-07-19 15:36:55 · 112 阅读 · 2 评论 -
数据结构(5)---线性表(链表OJ)
链表相关OJ练习实例一:203.移除链表元素题目描述:原创 2021-07-19 00:11:20 · 161 阅读 · 4 评论 -
数据结构(4)---线性表(链表)
链表文章目录链表链表的概念及结构单链表(无头单向非循环链表)链表的实现链表的概念及结构概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。链表中的数据, 包含了数据的本身, 也包含下一个数据的指针的指向, 所以它本身也是一种新的类型因为链表中的数据在内存中的存放是不连续的, 所以数据不仅包含数据本身还有一个指针的指向, 如果没有指针, 那这个数据就找不到.它是一个逻辑上连续的, 物理上不连续的结构实际中链表的结构非常多样,以下情原创 2021-07-17 19:38:04 · 186 阅读 · 8 评论 -
数据结构(3)---线性表(顺序表OJ)
顺序表相关OJ题目实例一:27.移除元素题目描述对于数组来说删除一个元素就是数据的覆盖, 并不是释放它的空间, 因为数组无法释放某一个元素的空间虽然我们这里成功删除了元素, 但是我们使用的空间复杂度比较高一些, 虽然程序也通过了, 但是这里的空间复杂度是O(n);优化:我们可以遍历这个数组, 如果当前位置的元素不等于要删除的值的时候, 我们就可以把值放在当前索引idx所在的位置上, 再将索引向后移动位置, 最后返回idx的值就是删除后数组应有的大小;实例二26.删除有序数组中的重复原创 2021-07-16 11:17:22 · 193 阅读 · 12 评论 -
数据结构(2)---线性表(顺序表)
线性表线性表是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。文章目录线性表前言顺序表1.概念及结构2.顺序表的实现3.顺序表的特点前言我们之前接触最多的线性表就是数组, 数组时存放相同元素的集合, 字符串如果是一个字符数组的话也算一个线性表;逻辑上连续, 物理上不一定连续,原创 2021-07-15 00:11:06 · 526 阅读 · 4 评论 -
数据结构(1)--算法的效率
数据结构: 数据结构是计算机存储, 组织数据的方式, 指相互之间存在一种或多种特定关系的数据元素的集合.算法: 算法就是定义良好的计算过程, 它取一个或一组值作为输入, 并产生一个或一组值作为输出.所谓的编程就是数据结构(数据的存储形式)加算法(一系列步骤的打包)时间复杂度 时间复杂度的定义: 在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗原创 2021-07-14 17:14:45 · 440 阅读 · 8 评论