程序语言的基础

文章讲述了图的深度优先和广度优先遍历,以及树的前序、中序和后序遍历。还涵盖了排序算法,包括冒泡、插入和选择排序。讨论了机器数的概念,如定点数和浮点数的表示,以及它们的特性。此外,提到了数据的存储结构,如顺序存储和链式存储,以及不同的查找方法,如顺序查找、折半查找和索引查找。最后,简述了递归和递推的概念。
摘要由CSDN通过智能技术生成

图的两种遍历方式

深度优先——>先一条路走到黑,再走别的路

广度优先——>先看清有几个岔路再一个一个岔路的走

树的三种遍历方式

前序遍历——>根左右

中序遍历——>左根右

后序遍历 ——>左右根

三种排序:都具有稳定性

冒泡——>

插入——>

选择——>

数据表示(机械数)

各种数据在计算机中表示的形式称为机器数,其特点是采用二进制计数制。 为了便于运算,带符号的机器数可采用原码、反码、补码和移码等不同的编码方法。

定点数——>就是表示数据时小数点的位置固定不变

浮点数——>浮点表示法用阶码和尾数来表示数

机械数的符号用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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值