BinarySearchTree船租记录保存



这是家庭作业

对于我必须完成的任务,我必须为一艘游轮创建一个月的记录保存日志(用数字1-31表示)。每天有一艘游轮,最多可容纳6人。如果某一天试图预订的人数超过6人,那么他们将被添加到队列中。当前的乘客列表应该保存在BinarySearchTree中。基本上,我们要从提供的文件中读取关于一个人对象的信息,并将它们插入到与他们选择的日期相对应的树中。(文件将按此顺序提供信息:(transactionCode day lastName firstName))其中交易代码表示所采取的操作(添加乘客,删除(从树中删除乘客并从队列中添加下一名乘客),打印(打印当前BST和当天的等待列表),出发(打印最终列表和当天的队列)。

我要问的问题是关于创建一个BST和一个队列的方法,该方法在单个方法中代表每一天,并添加到这些BST。我要在一个方法来完成这个空白。我已经创建了一个person对象类、一个BST类和一个队列类。我可以在我的乘客类中创建一个Add方法,但是我如何检查特定日期的树是否已经存在,并添加到该树中,而不是创建一个新树呢?

我很茫然,如果你需要看任何类,留下评论。

如果我明白你在说什么,我认为你应该这样做。

  • 有一个节点数组,每个节点代表一天。
  • 使节点保持字母x,因此必须确保它们是空的。
  • 让根节点向左和向右,直到每棵树有6个节点。
  • 我们还创建了另一个数组,同样,每个数组代表一天。
  • x填充每个节点,表示该节点未被占用。
  • 现在,当你想预订乘客时,通过在二叉树数组中找到它的索引来查找日期
  • 如果里面有x,那就意味着它是免费的,所以存储乘客的名字
  • 如果其中有另一个,检查左节点和右节点,直到所有六个节点都被选中
  • 如果所有6个都已填满,则转到节点的队列数组,转到当天的索引,如果是x,则将其替换为乘客的姓名
  • 如果它不是一个x和根指针不是NULL,说root->next = new Node (passenger's name);
  • 如果根指针是NULL,你将不得不去队列中的最后一个人,然后添加新的人。
  • 如果某旅客被删除一天,则到队列索引,将根节点添加到二叉树
  • 然后删除根节点中的名称,将其与下一行交换…直到没有人排队。

我希望这对你有帮助。:)

相关内容

  • 没有找到相关文章

最新更新