一.数据结构与其基本操作
1.四类数据结构: ①集合结构 ②线性结构 ③树型结构 ④图型结构
2.基本操作:增加、删除、修改、查找、合并…
3.数组是存储线性结构的一种方案
二.删除指定位置上的数据
#include <stdio.h>
#define SIZE 100 //定义常量用大写
int deleData(int[], int, int);//参数可省略名字
int main()
{
int n = 10; //数组中实际有用的元素
int d[SIZE] = { 1,3,9,12,32,41,45,62,75,77 };
int locate;
//locate要删除的元素:d[locate],i用于循环计算
scanf_s("%d", &locate);
n = deleData(d, n, locate);//调用函数
for (int i = 0; i < n; ++i)//输出新数组
printf("%d ", d[i]);
printf("\n");
return 0;
}
int deleData(int arr[], int len, int loc)
//功能:删除数组中指定位置上的元素
//参数:数组名/数组大小/要删除元素位置
//返回:删除后素组的大小
{
while (loc < len - 1) //3<9; loc最大取8;
{
arr[loc] = arr[loc + 1];
++loc;
}
return --len;//删除后,数组长度减1
}
运行结果:
3
1 3 9 32 41 45 62 75 77
三.在指定位置插入值
#include <stdio.h>
#define SIZE 100 //定义常量用大写
int insertData(int[], int, int, int);
//声明插入函数,参数可省略名字
int main()
{
int n = 10; //数组中实际有用的元素
int d[SIZE] = { 1,3,9,12,32,41,45,62,75,77 };
int locate;//locate要插入的元素:d[locate]
int value;//在locate位置处插入value值
scanf_s("%d %d", &locate, &value);
n = insertData(d, n, locate, value);//调用函数
for (int i = 0; i < n; ++i)//输出新数组
printf("%d ", d[i]);
printf("\n");
return 0;
}
int insertData(int arr[], int len, int loc, int val)
//功能:在长度为len的数组arr的loc位置处插入val
//参数:数组名/数组长度/插入位置/插入的值
//返回:插入数据后的长度
{
int i = len;
while (len > loc) //10>3; loc最大取9
{
arr[len] = arr[len - 1];
--len;
}
arr[loc] = val;
return ++i;//插入后,数组长度加1;++len不对;
}
运行结果:
2 8
1 3 8 9 12 32 41 45 62 75 77
四.合并两个有序数组
#include <stdio.h>
int mergeData(int[], int, int[], int, int[]);
#define SIZE 100
int main()
{
int n1 = 10, n2 = 7, n3 = 0; //数组中的实际有用元素
int d1[SIZE] = { 1,3,9,12,32,41,45,62,75,77 };
int d2[SIZE] = { 2,11,24,56,76,82,94 };
int d3[SIZE * 2];
n3 = mergeData(d1, n1, d2, n2, d3);
for (int i = 0; i < n3; ++i)
printf("%d ", d3[i]);
printf("\n");
return 0;
}
int mergeData(int d1[], int n1, int d2[], int n2, int d3[])
{
int i = 0, j = 0, k = 0;
while (i < n1 && j < n2)
{
if (d1[i] < d2[j])
d3[k++] = d1[i++];
else
d3[k++] = d2[j++];
}
while (i < n1)
d3[k++] = d1[i++];
while (i < n2)
d3[k++] = d2[j++];
return k;
}
运行结果:
1 2 3 9 11 12 24 32 41 45 56 62 75 76 77