动态栈比静态栈的扩展性好得多。
/***************************************************************
Project:动态栈
Author:Rise
****************************************************************/
#ifdef _DEBUG
#include<vld.h>
#endif /*_DEBUG*/
#include<malloc.h>
#include<stdio.h>
//https://www.cnblogs.com/xiaoyouPrince/p/8082640.html
typedef struct stackdata
{
int data;
struct stackdata* pnext;
}Node;
typedef struct _stack
{
Node* m_top;
size_t m_size;
}Stack;
void push(Stack* s,int dat)
{
Node* node = (Node*)malloc(sizeof(Node));
node->data = dat;
node->pnext = s->m_top;
s->m_top = node;
s->m_size++;
}
void pop(Stack* s, int& dat)
{
Node* node = s->m_top;
dat = node->data;
s->m_top = node->pnext;
free(node);
s->m_size--;
}
int main()
{
Stack s;
int d = 0;
push(&s, 10);
push(&s, 20);
pop(&s, d);
printf("%d\n", d);
pop(&s, d);
printf("%d\n", d);
return 0;
}