王道
52Tiramisu
这个作者很懒,什么都没留下…
展开
-
2.2线性表的顺序表示--综合题[3] 删除线性表中所有值为x的元素
自己想到的暴力求解:设置一个数组(初始化为0),遍历顺序表,记录所有值为x的元素(对应下标的数组为1),然后输出时检验不等于1就输出。bool DeleteX(SqList S, ElemType x) { int a[MAXSIZE] = { 0 }; for (int i = 0; i < S.length; i++) { if (S.data[i] == x) a[i] = 1; } for (int i = 0; i < S.length; i++) {原创 2020-07-02 23:26:01 · 439 阅读 · 0 评论 -
2.2线性表的顺序表示--综合题[2] 顺序表逆置
思路:从第一个元素到中间元素,依次,前半部分和后半部分对应位置进行交换。void Reverse(SqList &S) { // 从第一个到中间,依次对应交换 for (int i = 0; i < S.length / 2; i++) { ElemType temp = S.data[i]; S.data[i] = S.data[S.length - i - 1]; S.data[S.length - i - 1] = temp; }}...原创 2020-07-02 22:51:25 · 269 阅读 · 0 评论 -
2.2线性表的顺序表示--综合题[1]从顺序表中删除具有最小值元素
思路:先遍历找到最小元素位置,然后直接把最小元素位置改为最后一个位置的元素即可。注意:函数要对 顺序表进行修改,所以记得要用 & 符号。 由最后一个元素填补,说明,最后一个元素已经不存在了,所以要 S.Length--//顺序表中,删除具有最小值的元素(唯一),并由函数返回被删元素的值。//空出的位置由最后一个元素填补,若顺序表为空则显示出错信息并退出运行#include <cstdio>#define MAXSIZE 50typedef int El..原创 2020-07-02 22:31:41 · 833 阅读 · 0 评论