【发布时间】:2016-05-01 02:00:50
【问题描述】:
我正在尝试创建的堆栈的节点定义:
typedef struct node {
double value;
struct node *prev;
} node_t;
主要:
node_t *stack = NULL;
push(stack, new_node(strtod(token, NULL)));
关于 new_node 函数的注意事项 - 如果 token = "1",new_node 返回一个节点,其结构节点 *prev 等于 NULL(根据需要),双值 = 1(根据需要)
void push(node_t *stack, node_t node) {
if(stack != NULL) {
node_t temp;
temp = stack[0];
stack = &node;
node.prev = &temp;
}
else {
stack = &node;
}
}
当我修改堆栈时,我希望堆栈也会在 main 中被修改;然而,这种情况并非如此。在 main 中,调用 push() 后,堆栈保持为 NULL。
【问题讨论】:
-
您需要发布 new_node() 代码
标签: c struct linked-list stack