Ai
1 Star 0 Fork 127

夜景/数据结构(C++模板实现)

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
seq_list_algorithm.h 1.81 KB
一键复制 编辑 原始数据 按行查看 历史
Y_Dash 提交于 2023-06-18 13:37 +08:00 . 线性表更新doxygen
/*!
* @file seq_list_algorithm.h
* @author CyberDash计算机考研, cyberdash@163.com(抖音id:cyberdash_yuan)
* @brief 顺序表算法测试类
* @version 0.2.1
* @date 2021-09-28
* @copyright Copyright (c) 2021
* **CyberDash计算机考研**
*/
#ifndef CYBER_DASH_SEQ_LIST_ALGORITHM_H
#define CYBER_DASH_SEQ_LIST_ALGORITHM_H
#include "seq_list.h"
/*!
* @brief **顺序表求并集**
* @tparam TData 类型模板参数
* @param seq_list_a 顺序表a(并运算后的表)
* @param seq_list_b 顺序表b
* @note
* 遍历顺序表b, 对每个元素, 如果在表a中不存在, 则插入到表a中
*/
template<typename TData>
void SeqListUnion(SeqList<TData>& seq_list_a, SeqList<TData>& seq_list_b) {
int a_length = seq_list_a.Length();
int b_length = seq_list_b.Length();
for (int i = 1; i <= b_length; i++) {
int list_b_item;
seq_list_b.GetData(i, list_b_item);
int pos = seq_list_a.Search(list_b_item);
if (pos == 0) {
seq_list_a.Insert(a_length, list_b_item);
a_length++;
}
}
}
/*!
* @brief 顺序表求交集
* @tparam TData 类型模板参数
* @param seq_list_a 顺序表a(交运算后的表)
* @param seq_list_b 顺序表b
* @note
* todo: 换个实现方法, 返回新的集合
*/
template<class TData>
void SeqListIntersection(SeqList<TData>& seq_list_a, SeqList<TData>& seq_list_b) {
int a_length = seq_list_a.Length();
int iter_pos = 1;
while (iter_pos <= a_length) {
int list_a_item;
seq_list_a.GetData(iter_pos, list_a_item);
int pos = seq_list_b.Search(list_a_item);
if (pos == 0) {
seq_list_a.Remove(iter_pos, list_a_item);
a_length--;
}
else {
iter_pos++;
}
}
}
#endif // CYBER_DASH_SEQ_LIST_ALGORITHM_H
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/yuanermm/data-structures-cpp.git
git@gitee.com:yuanermm/data-structures-cpp.git
yuanermm
data-structures-cpp
数据结构(C++模板实现)
master

搜索帮助