13. Python 程序,用于对循环链表的元素进行排序

2025年1月4日 | 3分钟阅读

在这个程序中,我们将创建一个循环链表,并按升序对列表进行排序。在这个例子中,我们维护两个节点:current 指向头部,index 指向 current 的下一个节点。第一个循环跟踪 current,第二个循环跟踪 index。在第一次迭代中,current 将指向 9。index 将指向 current 之后的节点,在本例中为 5。 9 与 5 进行比较,因为 9 > 5,交换 index 节点与 current 节点的数据。现在,current 将有 5。现在,5 将与 2 进行比较。同样 5 > 2,交换数据。现在 current 将保持 2,index 将保持 7。2 < 7,什么都不做。index 将递增并指向 3. 2 < 3。什么都不做。这样,我们将在第一个位置得到一个最小值节点。然后,我们将继续在列表的其余部分中查找最小元素,直到列表完全排序。

算法

  1. 定义一个 Node 类,它表示列表中的一个节点。它有两个属性 data 和 next,next 将指向下一个节点。
  2. 定义另一个类来创建循环链表,它有两个节点:head 和 tail。
  3. sortList() 将对列表进行排序
  • 我们将维护两个节点:current 指向 head,index 指向 current 的下一个节点。
  • 从 index 开始遍历列表,直到到达末尾。
  • 如果 current.data 大于 index.data,则交换它们之间的数据。
  • 在第一次迭代中,我们将在列表的开头得到最小的元素。
  • 然后 current 将指向 current.next。
  • 重复步骤 b 到 e,直到找到下一个最小节点。
  • 两个循环结束后,列表将被排序。

程序

输出

Original list: 
70 90 20 100 50
Sorted list: 
20 50 70 90 100
下一个主题Python 函数程序