图的两种遍历方式
深度优先——>先一条路走到黑,再走别的路
广度优先——>先看清有几个岔路再一个一个岔路的走
树的三种遍历方式
前序遍历——>根左右
中序遍历——>左根右
后序遍历 ——>左右根
三种排序:都具有稳定性
冒泡——>
插入——>
选择——>
数据表示(机械数)
各种数据在计算机中表示的形式称为机器数,其特点是采用二进制计数制。 为了便于运算,带符号的机器数可采用原码、反码、补码和移码等不同的编码方法。
定点数——>就是表示数据时小数点的位置固定不变
。
浮点数——>浮点表示
法用阶码和尾数来表示数
机械数的符号用0、1表示,小数点则隐含表示而不占位置
。
浮点
一个数的浮点表示不是唯一的
。
浮点表示
法用阶码和尾数来表示数
,称为浮点数;浮点数所能表示的数值范围由阶码
决定,所表示数的精度由尾数决定
。
当小数点的位置改变时,阶码也相应改变,因此可以用多种浮点形式表示同一个数。
在总位数相同的情况下,浮点表示法可以表示更大的数
。
数的浮点表示形式为:N=2^E×F,其中E称为阶码,F为尾数。阶码E通常为带符号的纯整数
,尾数F为带符号的纯小数
。浮点数的表示格式如下:
很明显,一个数的浮点表示不是唯一的。当小数点的位置改变时,阶码也相应改变,因此可以用多种浮点形式表示同一个数
。 浮点数所能表示的数值范围由阶码决定
,所表示数值的精度由尾数决定
。
定点:
定点表示法表示的数(称为定点数
)常分为定点整数和定点小数
两种。
定点整数和定点小数
定点整数——>纯整数,小数点在最低有效数值位之后;
定点小数——>纯小数,小数点在最高有效数值位之前;
当机器字长为n时,定点数的补码和移码可表示2˄n个数,而其原码和反码只能表示2˄-1个数(0表示占用了两个编码),因此,定点数所能表示的数值范围比较小,运算中很容易因结果超出范围而溢出。
物理结构(存储结构)
数据的存储结构主要有顺序存储结构和链式存储结构两种。
顺序存储结构
定义:逻辑上相邻的元素在物理位置相邻的存储单元中
顺序存储结构,插入或删除元素一般都要移动相关结点的位置,较费时间。
链式存储结构
定义:逻辑上相邻的元素可以在物理位置不相邻的存储单元中
链表
最简单的数据结构是同类型数据元素的有限序列,称为线性表。采用链式存储结构的线性表称为链表。
链表中每个数据元素的存储单元称为结点,结点中除了数据项外,还包括指针(地址),指向其逻辑上相邻的元素。
链表是一种非顺序存储。
在链表中删除或插入:不需要改变结点的存储位置,而是修改几个结点的指针即可。
逻辑结构
查找方法
顺序查找方法的特点
算法非常简单,但效率较低,因为它是用所给关键字与线性表中各元素的关键字逐个比较,直到成功或失败。
折半查找方法
优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入和删除困难。适用于不经常变动而查找频繁的有序列表。
分块査找方法又称索引查找
它主要用于“分块有序”表的查找。所谓“分块有序”是指将线性表L(一维数组)分成m个子表(要求每个子表的长度相等),且第i+1个子表中的每一个项目均大于第/个子表中的所有项目。“分块有序”表应该包括线性表L本身和分块的索引表I。
分块査找的关键在于建立索引表I,其查找的平均长度介于顺序査找和折半查找之间。
递归和递推
递归——>将未知的问题缩小直到已知
递推——>一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),从问题出发逐步推到已知条件。
数组的系统结构
排序方法:先行后列
计算方法:以数组: arr [1~M][1~N]
首地址为base,每个元素占据k个存储单元;求arr[i][j]
的地址
base+((j-1)M+i-1)K:(j-1)x M是指有多少行的数据,i-1是指有多少列
案例:
对于数组float array[5][4]
,若数组元素array0的地址为2400,每个数组元素长度为32位(4B),且假定其釆用行序为主的存储模式,那么数组元素array的地址对应如下表:
从上表可见,arTay[3][2]
的内存地址为2456。 也可以根据下式计算得出结果:LOC[3,2]=LOC[0,0]+(3X4+2)X4=2456。