void sort_list(Node *head) { Node *p, *q; Student tmp; for (p = head; p != NULL; p = p->next) { for (q = p->next; q != NULL; q = q->next) { if (q->data.total > p->data.total) { tmp = p->data; p->data = q->data; q->data = tmp; } } } }画出此算法的流程图
时间: 2024-01-22 10:03:51 浏览: 49
用流程图描述算法
以下是该算法的流程图:
```
开始
|
V
设定链表头指针head,指针p,指针q和结构体tmp
|
V
循环p从head开始直到p为NULL
|
V
循环q从p的下一个结点开始直到q为NULL
|
V
如果q的总成绩大于p的总成绩,执行以下操作:
1. 用tmp保存p的数据
2. 将p的数据更新为q的数据
3. 将q的数据更新为tmp中保存的p的数据
|
V
结束内层循环
|
V
结束外层循环
|
V
结束
```
注意:该流程图只是该算法的一般流程,具体实现可能有所不同,比如可能需要判断链表是否为空、输入输出等步骤。
阅读全文