海南州事业单位计算机知识数据结构与算法

上传人:宝路 文档编号:23912458 上传时间:2017-12-03 格式:DOCX 页数:6 大小:126.88KB
返回 下载 相关 举报
海南州事业单位计算机知识数据结构与算法_第1页
第1页 / 共6页
海南州事业单位计算机知识数据结构与算法_第2页
第2页 / 共6页
海南州事业单位计算机知识数据结构与算法_第3页
第3页 / 共6页
海南州事业单位计算机知识数据结构与算法_第4页
第4页 / 共6页
海南州事业单位计算机知识数据结构与算法_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《海南州事业单位计算机知识数据结构与算法》由会员分享,可在线阅读,更多相关《海南州事业单位计算机知识数据结构与算法(6页珍藏版)》请在金锄头文库上搜索。

1、 黑龙江中公教育 http:/ 黑龙江中公教育官方微博:http:/ 计算机数据结构与算法1.数据结构数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。记为:Data_Structure=(D,R),其中 D 是数据元素的集合,R 是该集合中所有元素之间的关系的有限集合。数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。逻辑结构包括:1.集合 2.线性结构 3.树形结构 4.图形结构2.数组 (Array)在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式

2、组织起来。这些按序排列的同类数据元素的集合称为数组。在 C 语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。数组类别:多维数组有时需要追踪记录数组中的相关信息。例如,为了追踪记录计算机屏幕上的每一个像素,需要引用它的 X、Y 坐标。这时应该用多维数组存储值。可用 Visual Basic 声明多维数组。例如,下面的语句声明了一个过程内的 10 10 的二维数组。Static MatrixA (9,9) As Double可用显式下界来声明两个维数或

3、两个维数中的任何一个:Static MatrixA (1 To 10,1 To 10) As Double可以将所有这些推广到二维以上的数组。例如: 黑龙江中公教育 http:/ 黑龙江中公教育官方微博:http:/ Dim MultiD (3,1 To 10,1 To 15)这个声明建立了三维数组,大小为 4 10 15。元素总数为三个维数的乘积,为 600。注意在增加数组的维数时,数组所占的存储空间会大幅度增加,所以要慎用多维数组。使用 Variant 数组时更要格外小心,因为他们需要更大的存储空间。用循环操作数组:可以用 For 循环嵌套有效的处理多维数组。例如,在 MatrixA 中基

4、于每个元素在数组中的位置为其赋值:Dim I As Integer,J As IntegerStatic MatrixA(1 To 10,1 To 10) As DoubleFor I = 1 To 10For J = 1 To 10MatrixA (I,J) = I * 10 + JNext JNext I一维数组定义一维数组是最简单的数组,其逻辑结构是线性表。要使用一维数组,需经过定义、初始化和应用等过程。数组声明在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是 java 语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和

5、变量的命名规则相同。 黑龙江中公教育 http:/ 黑龙江中公教育官方微博:http:/ 数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符 new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以 new 运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用 new 运算符为数组元素分配内存空间的方式称为动态分配方式。举例:intx; /声明名称为 x 的 int 型数组x=new int10; /x 数组中包含有 10 个元素,并为这 10 个元素分配内存空间在声明数组时,也可以将两个语句合并成一行,格式如下:数据类型数组名= new 数据类

6、型个数;利用这种格式在声明数组的同时,也分配一块内存供数组使用。如上面的例子可以写成:intx = new int 10;等号左边的 intx 相当于定义了一个特殊的变量 x,x 的数据类型是一个对 int型数组对象的引用,x 就是一个数组的引用变量,其引用的数组元素个数不定。等号右边的 new int10就是在堆内存中创建一个具有 10 个 int 型变量的数组对象。intx = new int 10;就是将右边的数组对象赋值给左边的数组引用变量。二维数组定义前面介绍的数组只有一个下标,称为一维数组, 其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的, 因此 C 语言允许构造

7、多维数组。多维数组元素有多个下标, 以标识它在数组中的位置,所以也称为多下标变量。本小节只介绍二维数组,多维数组可由二维数组类推而得到。二维数组类型说明的一般形式是:类型说明符数组名常量表达式 1常量表达式 2;其中常量表达式 1 表示第一维下标的长度,常量表达式 2 表示第二维下标的长度。例如: 黑龙江中公教育 http:/ 黑龙江中公教育官方微博:http:/ int a34; 说明了一个三行四列的数组,数组名为 a,其下标变量的类型为整型。该数组的下标变量共有 34 个,即:a00,a01,a02,a03a10,a11,a12,a13a20,a21,a22,a23二维数组在概念上是二维的

8、,即是说其下标在两个方向上变化, 下标变量在数组中的位置也处于一个平面之中, 而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的, 也就是说存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。在 C 语言中,二维数组是按行排列的。在如上中,按行顺次存放,先存放 a0行,再存放 a1行,最后存放a2 行。每行中有四个元素也是依次存放。由于数组 a 说明为int 类型,该类型占两个字节的内存空间,所以每个元素均占有两个 字节(图中每一格为一字节)。元素的表示方

9、法二维数组的元素也称为双下标变量,其表示的形式为:数组名下标下标其中下标应为整型常量或整型表达式。例如:a34 表示 a 数组三行四列的元素。下标变量和数组说明在形式中有些相似,但这两者具有完全不同的含义。数组说明的方括号中给出的是某一维的长度,即可取下标的最大值; 而数组元素中的下标是该元素在数组中的位置标识。前者只能是常量, 后者可以是常量,变量或表达式。一个学习小组有 5 个人,每个人有三门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。课程 成绩姓名 MathCDBASE张807592 黑龙江中公教育 http:/ 黑龙江中公教育官方微博:http:/ 王616571李596370

10、赵858790周767785可设一个二维数组 a53存放五个人三门课的成绩。再设一个一维数组 v3存放所求得各分科平均成绩,设变量 l 为全组各科总平均成绩。编程如下:void main()int i,j,s=0,l,v3,a53;printf(input scoren);for(i=0;i3;i+)for(j=0;j5;j+) scanf(%d,&aj);s=s+aj;vi=s/5;s=0;l=(v0+v1+v2)/3;printf(math:%dnc languag:%dndbase:%dn,v0,v1,v2);printf(total:%dn,l); for(i=0;j3;i+)for(j=0;j5;j+) scanf(%d,&aj);s=s+aj;v=s/5; 黑龙江中公教育 http:/ 黑龙江中公教育官方微博:http:/ s=0;l=(v0+v1+v2)/3;程序中首先用了一个双重循环。在内循环中依次读入某一门课程的各个学生的成绩,并把这些成绩累加起来, 退出内循环后再把该累加成绩除以 5 送入 v 之中,这就是该门课程的平均成绩。外循环共循环三次,分别求出三门课各自的平均成绩并存放在 v 数组之中。退出外循环之后,把 v0,v1,v2相加除以 3 即得到各科总平均成绩。最后按题意输出各个成绩。更多相关信息请访问事业单位考试资料网

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号