![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
回顾以前学习的数据结构,温故而知新
有敬无畏乐以忘忧
这个作者很懒,什么都没留下…
展开
-
【数据结构】排序
基本概念排序:是计算机程序设计中的一种重要操作,其功能是对一个数据元素集合或序列重新排列成一个按数据元素某个值有序的序列。排序码:作为排序依据的数据项称为“排序码”,也即数据元素的关键码。若关键码是主关键码,则对任意待排序序列,经排序后得到的结果是唯一的;若关键码是次关键码,排序结果可能不唯一,这是因为具有相同关键码的数据元素,这些元素再排序结果中,它们之间的位置关系与排序前不能保持。分类稳定的/不稳定的:若对任意的数据元素序列,使用某个排序方法,它对按关键码进行排序;若相同关键码元素间的位置关原创 2020-08-17 13:46:50 · 1336 阅读 · 0 评论 -
【数据结构】查找
补充知识玩转数据结构 从入门到进阶 里面有很详细的数组、栈、队列、链表、二分搜索树、集合和映射、堆、线段树、Trie、并查集、AVL、红黑树、哈希表的教程。很详细!。 B树和B+树的插入、删除图文详解图解B+树的插入和删除(一看就懂)查找的基本概念1. 关键码可以标识一个记录的某个数据项主关键码:可以唯一地标识一个记录的关键码。如学号次关键码:不能唯一地标识一个记录的关键码。...原创 2018-12-11 17:39:59 · 456 阅读 · 0 评论 -
【数据结构】图的遍历算法和应用
补充知识:最短路径问题—Dijkstra算法详解最短路径问题—Floyd算法详解关键路径详细原理图应用概括一、深度优先遍历和广度优先遍历深度优先遍历广度优先遍历二、图应用最小生成树1.1 Prim 算法1.2 kruskal 算法最短路径2.1 单源最短路径——Dijkstra 算法2.2 多源最短路径——Floyd 算法关键路径3.1 AOV网3.2...原创 2018-12-04 17:03:15 · 2076 阅读 · 0 评论 -
【数据结构】树、二叉树和森林互相转换、哈夫曼树、二叉树遍历强化
补充知识点:线索二叉树一、树、二叉树和森林互相转换1.1 树转二叉树树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。按照这种关系很自然地就能将树转换成相应的二叉树:1.在所有兄弟结点之间加一连线2.对每个结点,除了保留与其长子的连线外,去掉该结点与其它孩子的连线。也就是说,在转换成二叉树之后,除了根结点的每一个结点的右孩子时该结点的兄弟,左孩子是该结点的长子。如下图所...原创 2018-11-20 20:58:31 · 597 阅读 · 0 评论 -
数据结构顺序表的具体实现与运算
一、线性表的顺序存储实现1、描述顺序表需要几个属性存储空间起始的位置:Data存储的容量:MaxSize当前长度:last(=n-1)2、顺序表的数据类型描述typedef struct{ DataType data[MaxSize]; int last; }SeqList;说明①若 把顺序表定义为 SeqList L;则 表长表示为 L.last+1...原创 2018-09-18 16:47:28 · 613 阅读 · 0 评论 -
数据结构二叉树的建立(先序)和读取(后序)
一、二叉树的性质二叉树的第i层上最多有2i-1个结点(i≥1)。深度为k的二叉树最多有2k-1个结点(k≥1 )一棵非空二叉树,若叶子结点数为n0,度数为2的结点数为n2,则n0=n2+1。1.1 完全二叉树特有性质具有n个结点的完全二叉树的深度必为log2n+1对于具有n个结点的完全二叉树,如果按照从上到下和从左到右的顺序对二叉树中的所有结点从1开始顺序编号,则对于任意的序...原创 2018-11-13 16:53:43 · 932 阅读 · 0 评论 -
【数据结构】图
补充知识十字链表邻接多重表图详解图应用数据结构与算法面试80道题原创 2018-11-27 16:41:40 · 3550 阅读 · 0 评论 -
【数据结构】队列
队列队列(Queue):插入在表一端进行,删除在表的另一端进行的线性表。队尾(rear):允许插入的一端队头(front):允许删除的一端空队:不含数据元素的队列入队(In):插入元素出队(Out):删除元素特点:先进先出(FIFO)顺序队思考如何改造数组实现队列的顺序存储?答:设置对头、队尾两个指针。约定:front指向队头的前一个位置,rear指向对尾。描述顺序队需要几个属性?存储空间的起始位置:data存储容量:MaxSize当前队尾的位置:rear当前队头的位置原创 2020-07-29 09:11:36 · 186 阅读 · 0 评论 -
【数据结构】栈
定义和特点栈(Stack):限定在表的一端进行插入和删除操作的线性表栈顶(top):允许插入和删除的一端栈底(bottom):表的固定一端空栈:不含数据元素的栈入栈(Push):插入元素出栈(Pop):删除元素特点后进先出(LIFO)栈的基本操作栈的初始化:Init_Stack(s)初始条件:栈s不存在操作结果:构造一个空栈数据类型定义,结构体typedef struct{ DataType data[MaxSize]; int top;}SeqStack;初始化原创 2020-07-28 13:31:22 · 613 阅读 · 0 评论 -
数据结构的概论
**什么时数据结构?1、数据结构时储存组织数据的方式 2、精心选择的数据结构可带来最优效率 3、即使一个简单问题也往往有多种方法且效率相差甚远 4、解决方法的效率跟数据组织方式有关**数据结构的内容体系逻辑结构:数据对象的逻辑组织关系,分为“线性”、“树”和“图”。线性:数据元素之间一对一树:数据元素之间一对多图:数据元素之间多对多物理结构:数据...原创 2018-09-05 18:30:38 · 110 阅读 · 0 评论 -
【数据结构】顺序表
上节课作业的错误:采用顺序存储结构表示数据时,相邻的数据元素的存储地址:一定连续。算法的可行性是指算法中的每一步都可以通过已经实现的基本运算的有限次执行得以实现。确定性:算法的每一步必须有确切的含义,无二义性。算法的执行对应着的相同的输入仅有唯一路径。一、线性表的逻辑结构1、数据如何存储?数据结构中,数据的基本存储方式主要是利用数组和链表实现的数据的存储跟操作密切相...原创 2018-09-11 15:11:30 · 1667 阅读 · 0 评论 -
数据结构之时间复杂度的计算
计算过程:用常数1取代运行时间中的所有加法常数。在修改后的运行次数函数中,只保留最高阶项。如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。推导示例1、常数阶首先顺序结构的时间复杂度。下面这个算法,是利用高斯定理计算1,2,……n个数的和。int sum = 0, n = 100; /*执行一次*/sum = (1 + n) * n / 2; /*执行...转载 2019-12-10 20:26:43 · 3586 阅读 · 0 评论