按的浪ฐ费;而链式存储结构式在需要空间时才动态地申请存储空间,不会造成存储空间不必要的开销。从这一点来说,链式存储结构比顺序存储结构要节省存储空间。
书中算法:
p25线性表的顺ิ序存储结构的类型描述如下:
#definemaxsize1000假定分配的空间大小为10่00
elemtypea;
inttop;栈顶指针ฤ变量
p9๗7测试堆栈是否为空:
intemptysinttop{
returntop==-1;
}
p98测试堆栈是否为满:
intfullsinttop{
returntop==m-ๅ1;
}
p9๗8入栈算法:算法的时间复杂度均为o1้。
intpush色lemtypestacນk;๙
intfront,rear;
p12๐6循环队列的入队算法:๘
intaddcqqelemtypequeue=item;
return1;循环队列未满,插入成功,返回1
}
}
p12๐7循环队列的出队算法:
intdelcqqelemtypequeue,temp,p=t;
intfront,rear;๙
ift!ำ=null{
queue,p=t;๙
inttop=-1;๙
dataທtypepriodata=mi女alue假设mi女alue为ฦ最小值
ift!ำ=null{
do{
9hilep!=null{
stack++top=p;当前p所指的结点地址进栈
p=p-lchild;p移到做孩子的结点
}
p=stacktop--;栈顶结点地址退栈送p
ifp-data
data;保存当前被访问结点的值
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
aທij=
0่其它情形
无向图的邻接矩阵特点:
1矩阵是对称的,可压缩存储上下三角;
2第i行或第i列中1的个数为顶ะ点i的度;
3矩阵中1的个数的一半为图中ณ边的数目;
4很容易判断顶点i和顶点j之间是否有边相连看矩阵中i行j列ต值是否为1。