【发布时间】:2011-03-05 17:58:34
【问题描述】:
我想删除一个列表并附加前端和后端列表并生成一个新列表。我有以下两种结构:
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] 并在其前后附加列表。你能告诉我该怎么做吗?
【问题讨论】:
-
在您的
term结构中,LIST定义在哪里?POINTER在LIST_HELP结构中定义在哪里? -
LIST_HELP 是一个链表。在术语中,args 是列表。它被定义为 LIST args。因此,术语被构造为符号及其参数。
标签: c linked-list structure