如何反转显示链接列表?

时间:2017-10-28 15:34:56

标签: c++ visual-studio

我有一个将随机整数插入列表的函数,以及一个显示列表的函数。凭借我现在所拥有的,有没有办法反向显示该列表?

   void InsertRandomInts() 
{
LinkedSortedList<int> list;
srand((unsigned)time(NULL));

for (int i = 0; i < 50; ++i) 
{
    int b = rand() % 100 + 1;
    list.insertSorted(b);
}       
displayListForward(&list);

}


void displayListForward(SortedListInterface<int>* listPtr)
{
cout << "The sorted list contains " << endl;
for (int pos = 1; pos <= listPtr->getLength(); pos++)
{
    cout << listPtr->getEntry(pos) << " ";
}
cout << endl << endl;
}

2 个答案:

答案 0 :(得分:2)

将列表从rbegin()重复到rend()并打印出来。你将反过来打印它。

1)停止重新发明轮子,只使用具有这些功能的标准容器。或者2)实现rbegin()&amp; rend()用于自定义容器。

for (auto it = list.rbegin(); it != it.rend(); ++it)
    // Print *it

答案 1 :(得分:0)

如果你不需要特定于列表的语义,例如存在能够删除元素而不会将迭代器减少到其他元素。)

添加所有项目后,可以应用std::list成员函数。然后,您最终可以使用std::vectorsort进行反向迭代。

这是一个简单的例子:

rbegin

但这可能是矫枉过正;要快速解决问题,只需扭转当前循环:

rend