Page 49 - 高中 信息技术 选择性必修1 数据与数据结构
P. 49
第二章 数据的存储方式 2.2 数据的顺序存储与组织
(续表)
功能 程序段
void array_insert(int a[],int n,int x,int i)
在数组a中第i(i≥0)个 {
位置插入元素x,原来第i到 //第i到第n个元素向后移
第n个元素向后移(n为数组 for(int j=n; j>=i; j--) a[j]=a[j-1];
中已有元素个数)。 a[i-1]=x;
}
void array_delete(int a[],int n,int i)
从数组a中删除第i(i≥0) {
个元素。 for(int j=i; j<n; j++) a[j-1]=a[j];
}
一维数组的几种基本操作示意图如图2-8所示。
通过对数组实施操作,可以对数组中的元素进行不同的组织与管理。例如,要在一组
有序数据中插入一个新的数据,并使插入后的这组数据依然有序,可以借助以下操作:
(1)遍历数组并查找适合新数据插入的数组位置i。
(2)将数组下标为i到n-1位置的数据向后移动。
(3)将新数据保存到数组下标为i的位置中。
程序代码可参考配套学习资源包中的文档“第二章\课本素材\有序数组的元素插
入.docx”。 广东教育出版社
对于二维数组,最常见的操作是遍历,与一维数组的遍历不同的是,我们把二维数组
看成一个n行m列的矩阵,因此在程序实现时需要使用两重for循环,代码如表2-9所示。
表2-9 二维数组遍历的实现代码
功能 程序段
#include <iostream>
#define maxrow 5
#define maxcolumn 10
using namespace std;
int a[maxrow][maxcolumn];
int main()
{
int i,j;
二维数组的遍历(遍历 for(i=0; i<maxrow; i++)
for(j=0; j<maxcolumn; j++)
并赋值)。 {
cin>>a[i][j]; //依次输入第(i,j)个元素
}
//按行列输出所有的元素
for(i=0; i<maxrow; i++)
{
for(j=0; j<maxcolumn; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
41 41
21X2204.indd 41 2019/9/26 13:53:07