【发布时间】:2013-11-05 05:30:31
【问题描述】:
我被指派为一个项目编写代码,该项目在某种程度上模拟了机场的时间表。这必须使用linkedLists 来实现。项目应由 Node 类和 SLL(单链表)类组成。项目的逻辑是这样的: main 函数中应该有一个时钟,每 15 分钟滴答一次;我创建了 flight.h 文件并包含了与其中的航班相关的所有信息。这里让我感到困惑的是与mergeSort和quickSort相关的部分代码。 该项目要求对所有航班进行排序:1. 根据他们的出发时间 2. 根据他们的出发城市。
#include <stdlib.h>
#include <string>
#include <ctime>
using namespace std;
#ifndef FLIGHT_H_
#define FLIGHT_H_
class Node
{
public:
Node()
{
flightNum = 0;
gate = 0;
status = On_time;
next = NULL;
}
enum Flight_status {On_time, Delayed, Departed};
struct Time {int hour, minutes;}; time;
string airLine;
int flightNum;
string city;
int gate;
Flight_status status;
Node *next;
friend class SLL;
};
class SLL
{
private:
Node *head;
Node *tail;
int size;
public:
SLL() {head = tail = NULL; size = 0;}
~SLL() {};
// Member function to add a new Node into a list
void addNode();
// Member functions to perform mergeSort over the list
void split(SLL *, int, int);
void merge(SLL *, int, int, int);
// Member functions to perform quickSort over the list
void partition(SLL *, int, int);
void swap(Node &, Node &);
void quickSort(SLL *, int, int);
//
void display(SLL *);
};
#endif /* FLIGHT_H_ */
我正在考虑在此声明的基础上构建程序的其余部分。我要确定的是,根据类的实现,我解决排序问题的方法是好的。如果您在实施此项目时发现任何问题,请帮助我。 提前致谢。
【问题讨论】:
-
我真的没有看到任何问题。你有什么问题?排序的执行?只是对课程的回顾?还有什么?
-
@JoachimPileborg- 是的,真正让我困惑的问题是函数结果的实现和链接,我确实在 Flight.h 文件上工作,但编写了确切的函数、它们的返回以及应该如何他们被连接在一起真是令人困惑。你能帮我解决这个问题吗?
-
它是一个链表。令人困惑的部分是什么?我的意思是 除了 把看起来像非类函数原型的东西挂在 SLL 类中。如果你要走那条路,我建议它们是静态的和私有的(老实说,我建议使用
std::vector<>和std::sort,但我相当有信心给这个练习评分的 TA 不会同意这种观点)。 -
我猜@JoachimPileborg 的意思是“这里有一堆东西。我想做 X。请帮帮我”,这并不是一个真正的问题。这是一个请求。重点不应该是“我正在尝试做 X,我已经走到了这一步,但是我已经达到了这个特定的绊脚点。我应该怎么做才能越过绊脚点 Y?我已经尝试过 A、B 和C,但得到了这些错误......”更加专注。
标签: c++ linked-list quicksort mergesort