以单链表为存储结构的简单选择排序 实验要求: (1) 实现一个函数模板SelectSort,以带头结点的单链表为存储结构实现简单选择排序 (2) 利用编程模板中提供的主函数,测试算法正确性。
时间: 2023-11-28 08:50:06 浏览: 66
单链表上的简单选择排序算法
5星 · 资源好评率100%
好的,下面是实现一个函数模板SelectSort,以带头结点的单链表为存储结构实现简单选择排序的代码:
```cpp
template <typename T>
void SelectSort(LinkList<T>& L) {
LNode<T>* p = L.head->next;
while (p != NULL) {
LNode<T>* min = p;
LNode<T>* q = p->next;
while (q != NULL) {
if (q->data < min->data) {
min = q;
}
q = q->next;
}
if (min != p) {
T temp = min->data;
min->data = p->data;
p->data = temp;
}
p = p->next;
}
}
```
主函数可以参考以下代码:
```cpp
int main() {
LinkList<int> L;
CreateListHead(L, 10); // 创建一个长度为10的单链表
cout << "排序前:";
PrintList(L);
SelectSort(L);
cout << "排序后:";
PrintList(L);
return 0;
}
```
其中CreateListHead是创建带头结点的单链表的函数,PrintList是打印单链表的函数。
阅读全文