![](/img/trans.png)
[英]Removing a string from a string array in C ( i.e. removing an item from an item from a 2D array)
[英]Removing an item from a Dynamic Array List in C
我试图通过编写一些简单程序来习惯于编写C,我想尝试用C编写动态数组列表。到目前为止,它可以工作,但是我不确定要如何执行remove项。 , 例如:
有一个包含一些值的列表,例如:
index value
0 "a"
1 "b"
2 "c"
3 "d"
假设我要删除索引2 remove_item(list, 2)
的值,则值将如下所示:
index value
0 "a"
1 "b"
2 NULL
3 "d"
但这可能会给我带来一些不确定的行为,这并不理想。 所以我的问题是,我该如何移动数据以填补空白,例如,删除索引为2的数据将其移动:
index value
0 "a"
1 "b"
2 "d"
编辑 :我已经实现了第二个示例,但是我不确定如何使它像示例3所示那样运行。程序结构非常简单:
typedef struct ArrayList {
int array_size;
void **items;
} ArrayList;
任何帮助都是极好的 :)
index value
0 "a"
1 "b"
2 "c"
3 "d"
调用remove_item(list, 2);
现在您的列表应如下所示:
index value
0 "a"
1 "b"
2 "d"
换句话说,每个索引实际上代表一个节点。 您希望删除索引为2的节点(也可以说id)。2.删除索引为2的节点。 现在,您实际上将节点1与节点3连接起来。但是,由于索引是递增的,因此将下一个节点的索引减小1,因此3变为2。
当我在第一学期时,教授通过此代码向我们教授了简单的链表。 这对我真的很有帮助。 确保您阅读了评论。 通过发布此链接,这意味着我相信您不只是想做些硬件,而是要学习。 :)并不是您所实现的完全是什么,但是它可以使您的想法付诸实践。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.