计算机基础专有名词解析

计算机组成原理:

字:计算机进行数据处理时,一次存取,加工,传送的数据长度称为字。一个字通常一个或有多个字节组成,

字长:计算机每个字所包含的位数称为字长。

字块:在信息处理时,一群字作为一个单元来处理的称为字块。

eg:某存储芯片存储容量为128k*/位,该芯片的地址线和数据线的数目位?

解:128k*8位的128k代表128*1024个存储单元,地址线就是用来区分这些存储单元。128k*8位中的8位指的是每个存储单元的位数。故该地址线数目为17(2^7*2^10=2^17),数据线的数目为3(2^3)。

数据结构

程序:对数据进行加工处理

程序设计的实质:数据表示(数据存储到计算机中,才能被计算机加工处理(将数据存入计算机的过程)),数据处理(如何对数据进行处理)

程序=数据结构+算法

数据结构的研究问题:非数值数据之间的结构关系,及如何表示,如何存储,如何处理

数据:凡是能被计算机存储,加工处理的对象。是计算机程序加工处理的对象和原料。

信息:加工处理后的数据,是数据的内涵。信息通过数据表示。

数据元素(是讨论数据结构时涉及的最小数据单位,其中的数据项一般不予考虑):数据的基本单位,有时称为元素,结点,顶点,记录。

数据项(用来描述数据元素的特征):数据不可分割的最小标识单位,有独立含义,但常不具完整确定的实际意义,或不被当作一整体看待,有时称字段,域。

数据类型(Data Type):是具有相同性质的计算机数据的集合及在这个数据集合上的一组操作的总称,它显式或隐式地取值范围和操作特性。

原子类型:值不可分解,一般由程序语言直接提供(int,char)。

结构类型:值可分解成若干成分,一般用户定义(数组)。

抽象数据类型(Abstrct Data Type或ADT):是指一个数学模型以及定义在该模型上的一组操作的总称。将一组数据和施加在这些数据上的一组操作封装起来,用户程序只能通过在ADT里定义的操作来访问其中的数据,从而实现信息的隐藏。其特征是使用与实现相分离,实现封装与信息的隐藏。

结构:数据元素之间的关系。

逻辑关系:数据元素之间的关联方式或称邻接关系。

逻辑结构(Logical Structure):数据元素之间逻辑关系的整体(各数据元素的逻辑关系)。与数据本身的形式,内容无关。与元素的相对位置无关,与所含结点的个数无关。属于用户视图,是面向问题的。与数据的存储无关,独立于计算机,可看成具体问题抽象出来的数学模型。

集合:任两点之间不考虑邻接关系或没有邻接关系,或称没有关系的关系。

线性结构:有且仅有一个开始结点和一个终端结点,任何结点最多一个直接前驱和一个直接后继,元素间存在1:1的关系。

树形结构:除根节点外,每个元素只有一个直接前驱,但可以有多个直接后继,结点间具有分支和层次特性,元素间存在1:n关系。

图形结构:任何两点间都可能邻接,结点之间形成网状结构,任一元素可有多个直接前驱和直接后继,元素之间存在m:n的关系。

存储结构:数据的机内表示(存储实现)。属于具体实现的视图,是面向计算机的(逻辑结构指的是数据间的关系,而存储结构是逻辑结构的存储映像。通俗的讲,可以将存储结构理解为逻辑结构用计算机语言的实现)。

运算:在逻辑结构上施加操作,即对逻辑结构的加工,如查找,插入,删除等。

加工型:改变原逻辑结构的值,如结点数,结点内容等。

引用型:不改变逻辑结构,只从中提取某些信息。

基本运算:其实现不能利用其它运算,而其它运算可以或需要利用改运算。如更新需要用到查找和修改,故它不是基本运算。

算法:解决问题的方法和步骤。规则的有穷集合,这些规则规定了一个指令的有限序列,其中每条指令表示一个或对个操作。

算法的基本特征:1.输入(0个或多个输入),2.输出(1个或多个输出),3.有穷性(在有限步内结束),4.确定性,5.可行性(每步可执行,并且执行时间是有限的)。

算法!=程序:1.程序不一定满足有穷性,如操作系统。2.程序中的指令必须是机器可执行的,而算法不一定是机器可执行。

数据结构:是指相互间存在着一种或多种关系的数据元素的集合,他们按照某种逻辑关系组织起来,并用计算机语言,按一定的存储方式存储在计算机的存储器中,同时在这些数据上定义了一个运算集合。

数据结构=逻辑结构+数据的运算+存储结构。

逻辑结构——“做什么”,算法——“怎么做”,存储结构是逻辑结构的实现,一种逻辑结构可以由多种不同的存储结构实现,如顺序存储,链式存储。算法是运算的实现。数据结构的基本任务是数据结构的设计与实现。

算法评价:1.正确性,2.易读性,3.健壮性(对非法输入的抵抗能力,不产生不需要的结果),4.高效性(较好的时空性能)。

算法分析:确定一个算法时空性能的工作。

时间复杂度(Time Complexity):算法的时间耗费,即包含的计算量。

空间复杂度(Space Complexity):算法的空间耗费,急需要的存储量。

T=Σ(频度*每次耗费的时间)。

问题规模:输入量的多少。

基本语句:是执行次数与整个算法的执行次数成正比的操作指令。

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

x++;

其中n为问题规模,x++为基本语句。

渐进时间复杂度:T(n)=2n^3+3n^2+2n+1=O(n^3)。

1.若所有语句都与规模无关,即使上千条语句,O(n)=O(1)。

2.一般只考虑与程序规模有关的频率最大的语句,如循环语句的循环体,多重循环的内循环。

中间结点(内部结点):树中有一个前驱和至少一个后继的结点。叶子(终端结点):度数为0的结点。

路径:连接某个结点及其子孙结点的线路,一条路径经过的边线称为该路径的长度。

有序树:子树从左到右是有次序的树。无序树:子树没有左右次序。

树的表示:1.树形表示法,2.凹入表示法,3.嵌套集合表示法,4.广义表表示法。

树的运算:1.初始化,2.求双亲,3.求孩子,4.插枝,5.剪枝,6.遍历。

二叉树(Binary Tree):每个结点最多有两个子树的树结构。是有序树,需严格区分左右。

二叉树的5种基本形态:1.空树,2.仅有根,3.右子树空,4.左子树空,5.左右子树均不空。

左斜树:所有结点都只有左子树的二叉树。右斜树:所有结点都是右子树的二叉树。在斜树中,每一层只有一个结点,斜树的结点个数与其深度相同。

满二叉树:在一棵二叉树中,所有分支结点都存在左子树和右子树,并且所有叶子结点都在同一层上。在满二叉树中,叶子只能出现在最下一层,只有度为0和度为2的结点,在同样的深度的二叉树中满二叉树的结点和叶子结点数最多。

完全二叉树:除了最后一层外都达到最大结点数,且最后一层的结点都连续集中在最左端。如果有度数为1的结点,只可能有一个且该结点只有左孩子。

深度为k的满二叉树有2^k-1个结点。

二叉树的性质:

1.二叉树的第i层最多有2^(i-1)个结点。

2.深度为k的二叉树最多有2^k-1个结点。

3.叶子结点数n0,度为2的结点数n2,满足n0=n2+1(N=n0+n1+n2,N=1+n1+2*n2(N个结点共有N-1条边,故该二叉树度数为N-1,即N-1=0*n0+1*n1+2*n2))。

4.n个结点的完全二叉树的深度为log2n向下取整+1或log2(n+1)向上取整。(2^(k-1)-1

#define maxsize 100;

Typedef struct{

datatype bt[maxsize+1];

int n;

}sqbitress;

非完全二叉树的顺序存储需要补充虚结点

二叉链表

typedef struct node *pointer;
struct node{
datatype data;
pointer lchild,rchild;
}
pointer bitree;

二叉树的遍历:沿某条搜索路径周游二叉树,对每个结点访问一次且仅访问一次。可以看成非线性结构到线性结构的一种映射方法。

遍历方式:1.前序(根,左,右),2.中序(左,根,右),3.后序(左,右,根),4.层序

前序:A B D G C E F,中序:D G B A E C F,后序:G D B E F C A。

猜你喜欢

转载自blog.csdn.net/figurers/article/details/79657691