做响应式网站的微博号,广告设计免费,wordpress免费教育模板下载,做个电商平台需要哪些步骤数据结构算法题day05 题目算法思想代码运行代码 题目
从有序表中删除所有其值重复的元素#xff0c;使表中所有元素的值均不同。算法思想
第一个元素#xff08;不重复#xff09;依次向后扫描#xff0c;不重复就保留#xff0c;重复#xff08;不保留#xff09;就删… 数据结构算法题day05 题目算法思想代码运行代码 题目
从有序表中删除所有其值重复的元素使表中所有元素的值均不同。算法思想
第一个元素不重复依次向后扫描不重复就保留重复不保留就删除所有重复元素代码
bool Del_same(Sqlist* L){int i 0,j 0;if(L - length 0)return false;for(i 0,j 1; j L - length; j){if(L-data[i] ! L-data[j]){ i;L-data[i] L-data[j]; } }L-length i 1;return true;
}运行代码
#define _CRT_SECURE_NO_WARNINGS
#includestdio.h
#define MaxSize 10//定义最大长度
int InitArr[10] { 1,2,2,3,4,2,5,2,6,7 };typedef struct {int data[MaxSize];//用静态的数据存放数据元素int length;//顺序表当前长度
}Sqlist;//顺序表的类型定义void print(Sqlist* L)
{for (int i 0;i L-length;i){printf(%d , L-data[i]);}
}
//初始化一个顺序表
void InitList(Sqlist* L)
{for (int i 0;i MaxSize;i){L-data[i] InitArr[i];//将所有数据元素设置为默认初始值}L-length 10;//顺序表初始长度为0
}
//对长度为n的顺序表L编写一个时间复杂度为O(n)空间复杂度为O(1)的算法
//该算法删除线性表中的所有值为x的数据元素//算法思路
bool Del_t(Sqlist* L ,int s ,int t){int i 0, k 0;if (L - length 0 || s t)return false;for(i 0; i L - length ; i){if(L - data[i] s L - data[i] t)k;else L - data[i-k] L - data[i];//将元素移动K个单位}L- length L-length - k;return true;
}
bool Del_same(Sqlist* L){int i 0,j 0;if(L - length 0)return false;for(i 0,j 1; j L - length; j){if(L-data[i] ! L-data[j]){ i;L-data[i] L-data[j];} }L-length i 1;return true;
}int main()
{Sqlist L;InitList(L);//初始化一个顺序表1,2,2,3,4,2,5,2,6,7printf(初始顺序表为);print(L);printf(\n); Del_same(L);printf(删除重复值后的元素后顺序表为:);print(L);return 0;
}