【发布时间】:2014-02-20 18:45:54
【问题描述】:
typedef struct Element
{
struct Element *next;
void *data;
} Element;
在pop函数中,(!(elem = *stack))这行是什么意思?
bool pop( Element **stack, void **data )
{
Element *elem;
if (!(elem = *stack)) return false;
*data = elem->data;
*stack = elem->next;
delete elem;
return true;
}
push函数中,(!elem)这行是什么意思?
bool push( Element **stack, void *data )
{
Element *elem = new Element;
if(!elem) return false;
elem->data = data;
elem->next = *stack;
*stack = elem;
return true;
}
【问题讨论】:
-
如果*stack为0,则返回false。在 push 函数中,这意味着如果 elem 为 0 即未创建。