【问题标题】:C++ Linked List - Print in sorted orderC++ 链表 - 按排序顺序打印
【发布时间】:2016-04-05 10:21:44
【问题描述】:

我用 C++ 创建了一个包含汽车对象的链表。一个汽车对象有几个不同的属性,但是,在这个例子中,我们将重点关注每加仑英里数 (MPG) 属性。 这个属性是一个 int 并且一些汽车有相同的 MPG。

有没有办法让我以 MPG 的递增顺序打印出这些项目而不实际对链表进行排序,即遍历整个列表 n 次,其中 n = 链表的大小,输出汽车对象通过列表的每次迭代向用户发送。

如果我的问题格式不正确,我提前道歉,我是新来的。

【问题讨论】:

  • 复制初始列表或指向初始列表对象的指针列表,对其进行排序并打印。将产生紧凑的代码

标签: c++ printing linked-list


【解决方案1】:

是的,有办法做到这一点。

  1. 制作一个等于列表大小的假值数组。
  2. 获取一个汽车类型的新对象,并为其分配链表中的第一个值。
  3. 遍历列表,试图找到 MPG 较低的汽车。如果发现用这个替换它。
  4. 在每次迭代结束时,打印此元素并将 false 数组中的相应值标记为 true,这样您就不会再次使用它。

例子:

CAR    1 -> 2 -> 3 -> 4 -> 5-> NULL 

MPG    15   25   10   41   21

arr    F    F    F    F    F

在每次迭代之后,arr 值将成为 true(即您已经打印了它们。)

【讨论】:

  • 它不会比排序快。
  • @AndreiR。 OP不想对其进行排序。他想使用这种技术以排序的顺序打印它们。阅读问题详情。
猜你喜欢
  • 2015-03-22
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-22
  • 2021-08-10
  • 2020-04-01
相关资源
最近更新 更多