{7,ไ19,2,6๔,ไ32๐,3,21,ไ10},按哈夫曼规则:data=getchaທr;输入各顶点的符号
先将概率放大100倍,以方便构造哈夫曼树。
}
ifq!=0{t=lklistmallocນsizeoflklist;t-data=p-data;๙t-next=hcນ;hc=t;}
intemptysinttop{
p97测试堆栈是否为空:
6.在线性结构中ณ,第一个结点没有前驱结点,其余每个ฐ结点有且只有1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。
5线性结构中ณ元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素า之间存在多对多关系。
}
p98๖入栈算法:算法的时间复杂度均为o1。
intpush色lemtypestacນk;
intfront,rear;
p12๐6๔循环队列的入队算法:
intaddcqqelemtypequeue=item;
return1;循环队列未满,插入成功,返回1
}
}
p127循环队列ต的出队算法:
intdelcqqelemtypequeue,temp,ไp=t;๙
intfront,reaທr;
ift!=null{
queue,p=t;๙
inttop=-ๅ1;
datatypepriodaທtaທ=mi女alue假设mi女alue为最小值
ift!=null{
do{
9hilep!=null{
staທck+ใ+top=p;当前p所指的结点地址进栈
p=p-lcນhild;p移到做孩子的结点
}
p=stacktop--;栈顶结点地址退栈送p
ifp-dataທ
daທta;保存当前被访问结点的值
p=p-rchild;p移到右孩子结点
}9hile!p==null&ุ&top==-1;๙
}
return1;断言二叉树是二叉排序树
}
第八章
复习要点:
1图:图g是由顶点集v非空集和边的集合e顶点之间的关系组成的一种数据结构,形式化:g=v,e。
2无向图:若图g中ณ每一条边都是没有方แ向的,则称g为无向图
3有向图:若图g中每一条边都具有方向,则称g为有向图
1例表示从顶点x向顶点y的边,x为始点,y为终点。有向边也称为弧,表示为一条弧,x为弧尾,y为弧头。
4๒完全无向图:具有n个顶点,nn-12๐条边的图。
5完全有向图:具有n个顶点,nn-ๅ1条弧的有向图。
6完全图:完全无向图和完全有向图都称为。
7稠密图:一个ฐ图接近于完全图。
8稀疏ຕ图:边或弧的数目很少的图。
9权:与边有关的数据信息被称为ฦ权
10网:每条边上都带权的图称为网络,简称网
11度:顶点的度是指依附于某顶点v的边数,通常记为tdv
对于有向图,区别出度和入度
1有向图中的顶点v的入度是指以顶点v为终点的弧的数目,记为idv
2顶ะ点v的出度是指以顶ะ点v为始点的弧的数目,记为odv
3出度和入度之和为ฦ顶点v的度,即tdv=idv+odv
12图的两种存储表示ิ:邻接矩阵和邻๑接表
1图的邻๑接矩阵定义为:
1若i,j∈eg或〈i,ไj〉∈eg
aij=
0其它情形
无向图的邻๑接矩阵特点:
1矩阵是对称的,可压缩存储上下三角;๙
2๐第i行或第i列ต中1的个ฐ数为顶点i的度;
3矩阵中1的个数的一半为ฦ图中边的数目;
4很容易判断顶点i和顶点j之间是否有边相连看矩阵中i行j列值是否为1。
有向图的邻接矩阵特点:
1矩阵不一定是对称的;
2第i行中1的个数为顶点i的出度;