gpt4 book ai didi

c - 从链接列表中删除和附加列表

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:44 26 4
gpt4 key购买 nike

我想删除一个列表并附加前端和后端列表并生成一个新列表。我有以下两个结构:

typedef struct term {
SYMBOL symbol;
union {
LIST termlist;
struct term* term;
} super;
LIST args;
NAT stamp;
NAT size;
} *TERM, TERM_NODE;

typedef struct LIST_HELP {
struct LIST_HELP *cdr;
POINTER car;
} LIST_NODE;

typedef LIST_NODE *LIST;

使用这两个结构我有一个像这样的 TERM:

forall([X8,X9],implies(connected(X8,X9),exists([V],and(or(equal(h_1(X8),U),equal(h_2(X8),U)),connected(U,X9)))

这里都是符号。假设如果 forall 是一个符号,那么其余的作为 forall 的参数。它是一种由另一个Term组成的Term。我想从中删除 [V] 并在其前后附加列表。您能告诉我该怎么做吗?

最佳答案

可能是家庭作业;所以,假设你有一个列表 LIST l1,你发现它是 l1->cdr 的 cdr。现在:要从列表中删除一个条目,您要做的是将 cdr 的 cdr 设置为当前的 cdr,如下所示:

l1->cdr = (l1->cdr)->cdr;

您实际上删除了之前在 l1->cdr 中的条目。您还需要做的是记住 l1->cdr 的先前值,以便您可以释放它使用的内存。

关于c - 从链接列表中删除和附加列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5205658/

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