标签:delete 连续 插入 它的 存储结构 顺序存储结构 移动 bre for
线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素
线性表的当前长度:length
在任何时刻,数组的长度大于等于线性表长度
//C++代码
例:获得元素值
const int numsLength = 6;//数组大小
int nums[numsLength] = { 1, 2, 3, 4, 5 };
//获取下标为2的元素,并打印
int getNum = nums[2];
cout << getNum << endl;
例:插入数据
//插入
int InsertIndex = -1; //要插入元素的下标
int InsertNum; //插入的数值
cout << "请输入要插入的数值和下标:";
cin >> InsertNum >> InsertIndex;
if (InsertIndex == -1 || InsertIndex < 0 || InsertIndex > 5)
{
cout << "下标输入有误!" << endl;
}
else
{
for (int i = numsLength - 1; i > InsertIndex; i--)
{
nums[i] = nums[i - 1];//移动元素
}
nums[InsertIndex] = InsertNum;//插入数值
//遍历数组
for (int i = 0; i < numsLength; i++)
{
cout << nums[i] << endl;
}
}
例:删除数据
//删除
int DeleteNum;
int DeleteIndex = -1;//删除的数值下标
cout << "请输入要删除的元素:";
cin >> DeleteNum;
//查找要删除的元素的下标位置
for (int i = 0; i < numsLength; i++)
{
//找到和DeleteNum相同的元素
if (nums[i] == DeleteNum)
{
DeleteIndex = i;
break;
}
}
if (DeleteIndex == -1)
{
cout << "要删除的数值没有找到!" << endl;
}
else//找到要删除的元素
{
for (int i = DeleteIndex; i < numsLength-2; i++)
{
nums[i] = nums[i + 1];//移动元素
}
//遍历数组
for (int i = 0; i < numsLength - 2; i++)
{
cout << nums[i] << endl;
}
}
在存、读数据时,时间复杂度是:O(1);
插入、删除时,时间复杂度是:O(n);
优点
缺点
标签:delete 连续 插入 它的 存储结构 顺序存储结构 移动 bre for
原文地址:https://www.cnblogs.com/jkl233/p/9941861.html