![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构-浙江大学
文章平均质量分 92
AsiaSun.
日拱一卒
展开
-
数据结构-浙江大学-堆(六)
什么是堆(heap) 优先队列(Priority Queue):特殊的“队列”,取出元素的顺序是依照元素的 优先权(关键字) 大小,而不是元素进入队列的先后顺序。 大O记号(上界) Ω记号(下界) θ记号(渐近界) 堆: 首先是一个完全二叉树 然后,每一个结点都比子结点大或者小,大的为最大堆。小的为最小堆 特性:从根节点,到下面某一个节点的路径,是一个有序的序列。 插入一个新的元素,由于堆是完全二叉树,自然而然的会放入在[6]的位置 case1 插入的值小于31,正好 case2 插入原创 2020-07-08 15:31:54 · 197 阅读 · 0 评论 -
数据结构-浙江大学-树(五)
简介: 主要介绍一些树的扩展与应用 二叉搜索树 平衡二叉树 是O(logn)后面的!是感叹号原创 2020-07-07 22:04:58 · 130 阅读 · 0 评论 -
数据结构-浙江大学-树(四)
什么是树 客观世界中,许多事物存在层次关系,例如: 家谱、社会组织结构、图书信息管理(某一个系列类下面有很多书) 分层次组织在管理上具有更高的效率 数据管理的基本操作有:插入、删除、查找 接下来,我们来研究下:如何实现有效率的查找? 查找 上面这个是没有哨兵的方法,需要在循环的时候,每次都要判断i>0是否成立 顺序查找算法的时间复杂度是O(n) 树 树的定义 树的一些基本术语 左上角的树,可以用链表形式得到右下角的链表形式 但是,每个节点的指针域不同,有的有3个指针域,有原创 2020-07-07 11:30:30 · 270 阅读 · 0 评论 -
数据结构-浙江大学-栈、队列(三)
栈 栈有很广泛的应用,在函数调用、递归、表达式求值等等都要用到栈。 一个数组实现两个栈 这里,老师讲的是单向链表的头作为栈顶。 单向链表的头可以做插入、删除操作,这个很明显。 老师讲的,单向链表的尾部,只能做插入,不能做删除 但是,我们基于前面的线性链表可以知道,删除是整个链表都可以进行的操作,咋就尾部不能做删除操作了呢? 翻阅了一下手头的资料,发现: 《大话数据结构》 《王道-数据结构》 好像,只是便于操作,才是放在了单链表的头部。 而不是单链表的尾部删除后找不到前面的节点这个原因。原创 2020-07-04 22:31:42 · 241 阅读 · 0 评论 -
数据结构-浙江大学-线性表(二)
线性表 什么是线性表? 我们通过一个多项式的表示来引出,什么是线性表 这种表示方法,会造成空间浪费。 因此,我们只保存非0项 线性表 线性表:由同类型数据元素构成有序序列的线性结构 线性表中元素个数称为线性表的长度 线性表没有元素时,称为空表 线性表的起始位置称为表头,结束位置称为表尾 线性表的抽象数据类型描述 类型名称:线性表(List) 数据对象集: 线性表是n(>=0)个元素构成的有限序列(a1,a2,…,an) 数据集合相关联的操作集: 顺序存储(数组结构) last指向最后一个元原创 2020-07-03 17:17:28 · 295 阅读 · 0 评论 -
数据结构-浙江大学-开篇(一)
简介 此数据结构的基于数据结构-浙江大学的视频教材的学习整理。 感谢两位老师! 先看一个例子:顺序输出1-N个正整数 #include <stdio.h> void printN(int N) { for (int i = 0; i<N; i++) { printf("%d ", i); } return; } void printN2(int N) { if (N > 0) { printN(N - 1);原创 2020-07-03 10:54:26 · 283 阅读 · 1 评论