2022年3月29日 星期二 课堂笔记
第四章 串、数组和广义表
1、串的基本概念
(1)串的结构:S="ABC"
(2)串的长度:数据元素的个数
(3)子串与主串:是一对相互包含的串
(4)字符位置与子串位置:求解串的字符的位置,求解子串首字符在主串出现的位置。
(5)串相等:两个串的长度相同,对应位置的字符也相同
(6)空串与空格符:长度为0的串,包含若干空格字符的串
2、了解一个病毒的实例。
实际要掌握子串的求解
3、掌握串的类型定义:包含三要素:数据对象、数据关系、基本操作
4、串的存储结构
将串分为两个结构,分别是顺序存储和链式存储
要求掌握这两个结构的区别:(期末考)
(1)顺序存储:逻辑上相邻,物理上也相邻
物理存储:逻辑上相邻,物理上不一定相邻
(2)顺序存储的存储密度为1而链式存储的存储密度小于1
(3)顺序存储采用数组存放,而链式存储采用指针存放
5、已知两个串:一个是主串,一个是子串,要求掌握两个算法完成子串在主串的位置求解
(1)BF算法:子串每一趟匹配只能右移一位
(2)KMP算法:子串每一趟匹配可以右移多位,主要根据子串的首字符来判断右移的位移
2022年4月4日 课堂笔记 星期一
4.4数组
数组(m,n) m行,n列
(1)按列存放存储
LOC (i,j)=基地址+((i-1)*m+j)*L
L为每个元素占的存储单元
(2)按行存放存储
LOC(i,j)=基地址+((j-1)*m+i)*L
L为每个元素占的存储单元
练习:
设有一个二维数组A[m][n]按行优先顺序存储,假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?
设数组元素A[i,j]存放在起始地址为LOC(i,j)的存储单元中
∵LOC(2,2)=LOC(0,0)+2*
∴∴
4.5广义表
1.
(1)求表头GetHead(L):非空广义表的第一个元素,可以是一个 单元素,也可以是一个子表
(2)求表尾GetTail(L) :非空广义表除去表头之外,由其余元素构成的表
2.掌握广义表的两种求解方式:H(),T().
2022年4月5日 星期二 课堂笔记
第五章 树和二叉树
5.1 树和二叉树的定义
5.1.1 树的定义
树是n个结点的有限集,它或为空树(n=0);或为非空树,对于非空树T:
(1)有且仅有一个称之为根的结点;
(2)除根结点以外的其余结点可分为m(m>0)个互不相交的有限集T1,T2,...,Tm,其中每一个集合本身又是一棵树,并且称为根的子树
5.1.2 树的基本术语
三个结点 有 五种画法
利用二叉树求解表达式的值
2022年4月11日 星期一 课堂笔记
2022.4.19 课堂笔记
5.7 哈夫曼树及其应用
5.7.1 哈夫曼树的基本概念
路径:由一结点到另一结点间的分支所构成
路径长度:路径上的分支数目
带权路径长度:结点到根的路径长度与结点上权的乘积
树的带权长度:树中所有叶子结点的带权路径长度之和
哈夫曼树:带权路径长度最小的树