gpt4 book ai didi

c - 结构链表中的元素编号

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:14 25 4
gpt4 key购买 nike

我正在尝试编写一个函数,该函数将结构链表作为参数。这些结构的元素之一是用于存储位置的值,例如结构#3 的元素为 3。进来的名单没有按顺序排列。我想遍历链表中的每个元素并根据它们的顺序设置值。我该怎么做?

nodeT numberStructs(nodeT *temp)
{
int i;
i=0;
while(temp!=NULL)
{
temp->struct.struct_order=i;
temp=temp->next;
i++;
}
return temp;
}

这显然不会削减它,但这是我到目前为止所得到的。另外,为了澄清,我将添加元素、移动元素、删除元素等。我不想每次都调整计数来改变行顺序,我想调用一个函数来理顺这些。这使我可以在需要更改时更改链表结构的指针。

最佳答案

typedef struct NodeT {
struct Node *next;
int struct_order;
...
} NodeT;

void fill_idx(NodeT *first) {
int idx;
NodeT *node;
for (node = first, idx = 0;
node;
node = node->next, ++idx) {
node->struct_order = idx;
}
}

等价于 while 循环:

void fill_idx(NodeT *first) {
int idx = 0;
NodeT *node = first;
while (node) {
node->struct_order = idx;
node = node->next;
++idx;
}
}

关于c - 结构链表中的元素编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23303944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com