🥰蓝蓝计算机考研算法

您所在的位置:网站首页 无人机英语怎么讲 🥰蓝蓝计算机考研算法

🥰蓝蓝计算机考研算法

2023-03-24 18:52| 来源: 网络整理| 查看: 265

Day13 2023/03/13

难度:简单

题目

32、描述:删除顺序表中最小的元素,由最后一个元素补充。

33、逆转顺序表中的元素

34、删除顺序表中为x的元素:

运行实例 删除最小元素

image.png

逆转顺序表中的元素

image.png

删除顺序表中为x的元素

image.png

思路 第一题按照题意,我们只需要遍历顺序表比较每个元素大小,找到最小元素的下标,然后用最后一个元素覆盖即可。 第二题,只需要每次交换头尾元素即可,交换到中间位置停止。 第三题,利用双指针法删除顺序表中值为x的元素,类似删除数组中某个指定值一样。 关键点

第三题和第一题,都不是真正意义上的删除某个元素,而是通过更新顺序表的长度,来实现的逻辑上的删除!!!(仔细点⭕)

算法实现 c++代码实现- 删除最小元素 #include using namespace std; // 静态分配的方式定义顺序表结构体 #define MAXSIZE 100 // 最大长度 typedef struct { int data[MAXSIZE]; // 数据域 int length; // 当前顺序表长度 } SqList; // 创建顺序表 bool CreateList(SqList &L, int n) { if (n > MAXSIZE) // 不能超过顺序表的的最大长度 return false; for (int i = 0; i < n; i++) { // 输入n个元素的值 cin >> L.data[i]; } L.length = n; // 更新顺序表长度 return true; } // 删除顺序表中最小的元素,由最后一个元素补充 bool DeleteMin(SqList &L) { if (L.length == 0) { // 如果顺序表为空,则返回false return false; } int minIndex = 0; // 记录最小元素的下标 for (int i = 1; i < L.length; i++) { // 遍历顺序表,找到最小元素的下标 if (L.data[i] < L.data[minIndex]) { minIndex = i; } } L.data[minIndex] = L.data[L.length - 1]; // 用最后一个元素覆盖最小元素 L.length--; // 顺序表长度减1 return true; } int main() { SqList L; int n; cout > n; cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3