4506人加入学习
(26人评价)
《数据结构》
价格 免费
音频听课 手机端支持一键听课 (试一试)

压缩存储原则:多个相同的非零元素只分配一个存储空间;零元素不分配空间

特殊矩阵:是指非零元素或零元素的分布有一定规律的矩阵

对称矩阵:若一个n阶方阵A=(aij)nxn中的元素满足性质aij= aji,1<=1.j<=n且i 不等于j,则称A为对称矩阵

对称矩阵中的元素关于对角线对称

三角矩阵:以主对角线划分,三角矩阵有上三角和下三角两种

稀疏矩阵转置运算:矩阵的运算包括矩阵的转置,矩阵求逆,矩阵的加减,矩阵的乘除等

转置矩阵的基本算法思想:

1.将矩阵的行,列下标值交换,即将三元组表中的行,列位置i,j相互交换

2.重排三元组表中元素的顺序,即交换后仍然是按行优先顺序排序的

[展开全文]

数组的定义:数组是一对(下标值,数据元素值)的集合,在数组中,对于一组有意义的下标,都存在一个对应的值,数组中的元素个数是固定的,可以将数组分为静态数组和动态数组,数组又可以分为一维数组和多维数组

 

[展开全文]

循环  32767 为结点结束标志

算法复杂度:o(n)

链表不是随机存取结构

按序号插入

按序号删除

按序号删除

按值删除

单链表的合并

仅需修改指针

 

 

[展开全文]

字串:串中任意个连续字符组成的子序列称为该串的子串,包含字串的串相应的称为主串

串相等:如果两个串的串值相等,称这两个串i相等

串的链式存储结构和线性表的串的链式存储结构类似,采用单链表来存储串,结点的构成是:

data域:存放字符,data域可存放的字符个数称为结点的大小

next域:存放指向下一结点的指针

[展开全文]

老师,本节(52-2)的图有问题?

[展开全文]

Chapter 2 线性表

1.顺序表&单链表基本算法:

2.设计有效算法解决&线性表相关的应用问题:

[展开全文]

栈分为硬堆栈和软堆栈,软堆栈又分为动态方式和静态方式

栈:是限制在表的一端进行插入和删除操作的线性表

栈顶:允许进行插入,删除操作的一端称为表位

栈底:是固定端,又称为表头

空栈:表中没有元素时

[展开全文]

线性表:主要有构造空表,求表长,取结点,查找,插入,删除

单链表有头指针的名字来命名

顺序表和链表的比较:

基于空间:适于线性表变化不大,易于事先确定其大小时采用

基于时间:由于顺序表是一种随机存储结构,当线性表大的操作主要查找时,其采用

[展开全文]

双向链表指的是构成链表的每个点中设立两个指针域:一个指向其直接前趋的指针域prior,一个指向其直接后继的指针域next

0将头结点和尾结点链接起来也能构成循环链表,称之为双向循环链表

[展开全文]

链式存储;用一组任意的存储单元存储线性表中的数据元素,,存储链表中结点的任一组任意的存储单元可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的

建立单链表方法:头插法,尾插法

单链表查找:(1)按序号查找

 

[展开全文]

顺序存储:把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里,用这种方法存储的线性表简称顺序表

顺序表的特点:1,线性表的逻辑顺序与物理顺序一致;2,数据元素之间的关系是以元素在计算机内”物理位置相邻“来体现

[展开全文]

定义:线性表是由n(n>=0)个数据元素a1,a2,a3,an......组成的有限序列,该序列中所有的所有结点具有相同的数据类型,其中数据元素的个数n称为线性表的长度

[展开全文]

算法:是对特定问题求解方法的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作,

算法的五个特性:1.有穷性 2.确定性 3.可行性 4.输入 5.输出

[展开全文]

钩链(或重新钩链)的次序必须的先左后右

[展开全文]

已知带权有向图如下图所示,请利用Dijkstra算法从顶点V4出发到其余顶点的最短路径及长度,给出相应的求解步骤。

答:初始化d[i]为无穷大,由于从v4开始,所以将d4=0,标记v4已选择。
下面开始Dijkstra算法:
和v4相连的且未标记的点有v2和v6,这样更新d2=20,d6=15,选择未标记所有点中最小的d6=15,标记v6已选择,这样我们算出了v4->v6最短距离d6=15;
从v6开始,和v6相连的且未标记的是v2,此时算d6+6=21>20,所以不更新d2,选择未标记所有点中最小的d2=20,标记v2已选择,这样算出了v4->v2最短距离d2=20;
从v2开始,和v2相连的且未标记的有v1和v5,d1=d2+10=30,d5=d2+30=50,选择未标记所有点中最小的d1=30,标记v1已选择,这样我们算出了v4->v1最短距离d1=30;
从v1开始,和v1相连的且未标记的有v3,d3=d1+15=45,选择剩下没被选的所有点的最小的d3=45(d5=50),标记v3已选择,这样我们算出了v4->v3最短距离d3=45
从v3开始,没有出去的路径,不更新距离,选择剩下没被选的所有点的最小的d5=50,标记v5已选择,这样我们算出了v4->v5最短距离d5=50.

[展开全文]

假设一个工程的进度计划用AOE网表示,如下图所示,

1)求出每个事件的最早发生时间和最晚发生时间

2)该工程完工至少需要多少时间

3)求出所有关键路径和关键活动

>从ve[0]=0开始利用递推公式求出其余顶点的最早发生时间ve[j]
ve[j]=Max{ve[i]+dut<i,j>}
(i=0,1,2,….n-1 j=1,2,…n-1 <vj,vk>∈E )
即从源点开始按拓扑有序求各顶点的最早发生时间
2>从vl[n-1]=ve[n-1]开始利用递推公式求出其余顶点的最迟发生时间vl[j]; vl[j]=Min{vl[k]-dut<j,k>}
3>求出每条弧(即活动)的最早开始时间e[i]与最迟开始时间l[i]
e[i]=ve[j]; l[i]=vl[k]-dut<vj,vk>
若 e[i]=l[i]即为关键活动。由关键活动组成的路径即关键路径
v1最早发生时间:ve[1]=ve[0]+a1=0+5=5;
v2最早发生时间:ve[2]=ve[0]+a2=0+6=6;
v3最早发生时间:有两条路v0->v1->v3,路径长度为5+3=8;v0->v2->3, 路径长度为6+12=18;取最大的即公式中的Max{ve[i]+dut<i,j>}的含义ve[3]=18
ve[4]=18+3=21;ve[5]=21;ve[6]=23;ve[7]=25;ve[8]=28;ve[9]=30;
假定vl[l]=ve[9]=30反向递推其余顶点的最迟发生时间
vl[8]=vl[9]-a14=30-2=28;
vl[7]=vl[8]-a13=28-2=26;
vl[6]=vl[8]-a12=28-5=23;
vl[5]=26;
vl[4]有两路:vl[6]-a9=22;vl[7]-a10=26-10=16取最小的16
其他依次类推:然后是
3>求出每条弧(即活动)的最早开始时间e[i]与最迟开始时间l[i]
e[i]=ve[j]; l[i]=vl[k]-dut<vj,vk>
找到 e[i]=l[i]的活动即关键活动。由关键活动组成的路径即关键路径

[展开全文]

授课教师

数据机构

课程特色

PPT(62)
视频(67)