将内容过程经常用的内容片段记录起来,下边内容内容是关于C++算法之线性堆栈的内容。
typedef struct _STACK_NODE
{
int length;
int top;
}STACK_NODE;
(2)创建堆栈
{
if(0 == number)
return NULL;
assert(NULL != pStackNode);
memset(pStackNode, 0, sizeof(STACK_NODE));
if(NULL == pStackNode->pData){
free(pStackNode);
return NULL;
}
pStackNode-> length = number;
pStackNode-> top= 0;
return pStackNode;
}
(3)释放堆栈
{
if(NULL == pStackNode)
return FALSE;
assert(NULL != pStackNode->pData);
free(pStackNode->pData);
return TRUE;
}
(4)堆栈压入数据
{
if(NULL == pStackNode)
return FALSE;
if(pStackNode->length = pStackNode->top)
return FALSE;
pStackNode->pData[pStackNode->top ++] = value;
return TRUE;
}
(5)堆栈弹出数据
{
if(NULL == pStackNode || NULL == value)
return FALSE;
if(0 == pStackNode->top)
return FALSE;
return TRUE;
}
(6)统计当前堆栈中包含多少数据
{
return pStackNode->top;
}
建议:堆栈是函数调用的基础,是递归调用的基础,是很多问题的根源,建议朋友们平时有时间好好练习一下。
网友评论