删除顺序表指定元素
2016-03-25 07:41
274 查看
一直长度为n的线性表L采用顺序表存储结构,编写一个时间复杂度为O(n),控件复杂度为O(1)的算法,该算法将删除线性表中所有值为x的数据元素。
ps:默默的练习,悄悄的学习。
接着变换一下 删除 【x, y】之间的元素。
void deletex(sqList &l, ElemType x, ElemType y)
{
int i = 0, j = 0;
while (i < l.length)
{
if (l.data[i] < x || l.data[i] > y)
{
if (i != j)
{
l.data[j] = l.data[i];
}
i ++;
j ++;
}
else
{
i ++;
}
}
l.length = j;
}
ps:有删除指定元素的基础,再编写删除范围,好变换多了。
#define MAX_LEN 12 typedef int ElemType; typedef struct { ElemType data[MAX_LEN]; int length; }sqList; void deletex(sqList &l, ElemType x) { int i = 0, j = 0; while (i < l.length) { if (l.data[i] != x) { if (i != j) { l.data[j] = l.data[i]; } i ++; j ++; } else { i ++; } } l.length = j; }
ps:默默的练习,悄悄的学习。
接着变换一下 删除 【x, y】之间的元素。
void deletex(sqList &l, ElemType x, ElemType y)
{
int i = 0, j = 0;
while (i < l.length)
{
if (l.data[i] < x || l.data[i] > y)
{
if (i != j)
{
l.data[j] = l.data[i];
}
i ++;
j ++;
}
else
{
i ++;
}
}
l.length = j;
}
ps:有删除指定元素的基础,再编写删除范围,好变换多了。
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#数据结构之顺序表(SeqList)实例详解
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 数据结构之Treap详解
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解