数据结构学习---线性表顺序存储结构的应用(一):删除操作
2017-11-07 16:55
405 查看
顺序表的删除操作(假设有若干个删除元素x)
基本思路: 逐个查询删除元素,一旦出现删除元素,即将该元素删除,将后续元素前移
void DeleteOperate(int *sequence, int &len, int x)
{
//int Loc = 0;
for (int i = 0; i < len; i++)
{
if(sequence[i] == x)
{
len = len - 1;
for(int Loc = i; Loc < len; Loc++)
{
sequence[Loc] = sequence[Loc+1];
}
i = i - 1;//删除第i个元素,防止前移第i位的元素与删除元素相同,重新检验第i位
}
}
}
附上整体程序:
//顺序表的删除操作(删除值为x的元素,假设线性表中有若干个x元素)
#include <iostream>
#include <vector>
using namespace std;
// 方法是每碰到一次删除元素即移位;
void DeleteOperate(int *sequence, int &len, int x)
{
//int Loc = 0;
for (int i = 0; i < len; i++)
{
if(sequence[i] == x)
{
len = len - 1;
for(int Loc = i; Loc < len; Loc++)
{
sequence[Loc] = sequence[Loc+1];
}
i = i - 1;//删除第i个元素,防止前移第i位的元素与删除元素相同,重新检验第i位
}
}
}
void PrintElement(int *sequence, int len)
{
for(int count = 0; count < len; count++)
cout << sequence[count] << " " ;
}
int main ()
{
int len = 6;
int sequence[6] = {1,2,2,4,5,6};
int *seq = &sequence[0];
PrintElement(seq, len);
DeleteOperate(seq,len, 2);
//InsertOperate(seq, len, 3);
cout << endl;
PrintElement(seq, len);
system("pause");
return 0;
}
基本思路: 逐个查询删除元素,一旦出现删除元素,即将该元素删除,将后续元素前移
void DeleteOperate(int *sequence, int &len, int x)
{
//int Loc = 0;
for (int i = 0; i < len; i++)
{
if(sequence[i] == x)
{
len = len - 1;
for(int Loc = i; Loc < len; Loc++)
{
sequence[Loc] = sequence[Loc+1];
}
i = i - 1;//删除第i个元素,防止前移第i位的元素与删除元素相同,重新检验第i位
}
}
}
附上整体程序:
//顺序表的删除操作(删除值为x的元素,假设线性表中有若干个x元素)
#include <iostream>
#include <vector>
using namespace std;
// 方法是每碰到一次删除元素即移位;
void DeleteOperate(int *sequence, int &len, int x)
{
//int Loc = 0;
for (int i = 0; i < len; i++)
{
if(sequence[i] == x)
{
len = len - 1;
for(int Loc = i; Loc < len; Loc++)
{
sequence[Loc] = sequence[Loc+1];
}
i = i - 1;//删除第i个元素,防止前移第i位的元素与删除元素相同,重新检验第i位
}
}
}
void PrintElement(int *sequence, int len)
{
for(int count = 0; count < len; count++)
cout << sequence[count] << " " ;
}
int main ()
{
int len = 6;
int sequence[6] = {1,2,2,4,5,6};
int *seq = &sequence[0];
PrintElement(seq, len);
DeleteOperate(seq,len, 2);
//InsertOperate(seq, len, 3);
cout << endl;
PrintElement(seq, len);
system("pause");
return 0;
}
相关文章推荐
- 数据结构学习---线性表顺序存储结构的应用(二):插入操作
- 数据结构学习---线性表顺序存储结构的应用(三):融合排序操作
- 数据结构一一线性表的顺序存储结构之删除操作
- 数据结构学习之路----------线性表顺序存储结构插入和删除节点平均移动次数
- 数据结构学习---线性表顺序存储结构的基本操作
- (1)顺序表的操作 ① 输入一组整型元素序列,建立线性表的顺序存储结构。 ② 实现该线性表的遍历。 ③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。 ④ 在该顺序表中删除或插入指
- 线性表的基本操作:插入、删除、查找等操作在顺序存储结构和链接存储结构上的算法
- 数据结构一一线性表的顺序存储结构之查找操作
- 数据结构学习笔记 --- 线性表 (应用举例)
- 编程实现顺序存储结构和链式存储结构线性表的建立、查找、插入、删除等基本操作
- 线性表之顺序存储结构删除操作
- 数据结构学习之线性表的顺序存储结构
- 数据结构学习(五)——循环双链表的操作之创建,插入、删除
- 数据结构与算法-线性表顺序存储结构删除操作的实现
- 数据结构学习(三)——单链表的操作之查找、删除、插入。
- 数据结构与算法-线性表顺序存储结构删除操作的实现
- Java数据结构-线性表之单链表应用-重复节点的删除
- 数据结构--线性表 算法函数的实现(实现线性表的删除操作)
- 算法与数据结构--实现线性表的删除操作--算法2.4
- 数据结构一一线性表的链式存储结构之删除操作