首页 > 解决方案 > 将数组的元素附加到数组本身

问题描述

我正在使用一个小数组,以 int 指针的形式。举个例子,数组有 3 个元素,[0, 1, 2]。

我想根据检查,获取索引为 i 的元素并将其移动到数组的后面。如果索引为 0,则数组应重新排序 [1, 2, 0]。然后,下次我这样做时,如果索引为1,则应重新排序[1,0,2]。

我正在使用的检查是,索引 i 处的当前值是否等于结构元素的特定值。结构体的代码如下:

struct          Process {
    int id;
    int cpu;
    int io;
    int arrival;
};

我正在处理的数组称为队列。这是我目前的重新排序尝试:

for (int q = 0; q < n; q++) {
    if (queue[q] == p[i].id) {
        while (q++ < n)
            queue[q] = queue[q + 1];
        queue[n - 1] = p[i].id;
        break;
    }
}

因此,我正在检查队列的元素是否等于 Process 实例的 id(p[] 是 Process 类型的进程列表)。如果是,我想将每个元素向后移动 1,然后将最后一个元素设置为等于我用于检查的 Process 实例的 id。while 循环以前是(n = 进程总数,因此是队列元素的总数):

for (int r = q + 1; r < n; r++) {}

但我相信两者都有相同的效果,而且都没有像我认为的那样工作。

值得一提的是,队列的元素是根据 p[] 中元素的 id 设置的,因为这些元素是初始化的,所以 p[i].id 应该总是在队列中找到。

标签: arrayscpointers

解决方案


推荐阅读