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