【发布时间】:2014-02-01 21:37:21
【问题描述】:
我必须实现一个奇怪的数据结构。有一个队列,其中包含内存分配(它可能是队列或数组,但没有链表或任何在代码中使用 malloc() 的东西)。 我们必须使用这个身体:-
Struct //we don't have to use pointer in structure in achieving the task
{
int frequency;
unsigned char symbol;
short int left,right;
}
在这里您可以看到我们在第一个索引处有 a、b、c、d 和 e 之类的字母,它们在第二个索引和其他两个索引上的相应频率暂时没有用,但我们必须为他们现在。
目前对我们有用的只有第二个索引(即字母的频率)。我在这个问题中要做的是两个添加两个最小频率(我必须把它放在一个地方,以便必须保持递增的顺序)例如:你可以在下面看到我们添加前两个节点频率:所以对于我们获得“a+b”的结果的第一个索引,可以说“z”(a+b=z)和第二个索引(3+3=6),其他两个索引是“0”和“0”,所以对我们没有用。我们现在必须调整这个获得的内存,使其保持频率递增的顺序
现在的问题是: (1)任何想法如何实现这种类型的数据结构? (不使用指针、malloc() 、链表等)(但可以使用队列/堆栈),此外我们可以使用 memcpy() 进行移位。 (2)如何在这种情况下实现排序(但这是次要的事情,首先如何实现它?)(对不起,我在可以解决这个问题的主题上标记了这个问题,对此感到抱歉) 如果你不明白这个问题的任何内容,请不要犹豫,问我。
【问题讨论】:
标签: c arrays sorting queue structure