嵌入式自学笔记
1、
2、 后进先出
3、栈的应用
从A出发进是入栈,红色的出是出栈
4、创建栈的思路
zhan* zhancreat(int len)
{
zhan* s;
if ((s = (zhan*)malloc(sizeof(zhan))) == NULL)
{
printf("s fail\n");
return NULL;
}
if ((s->date = (int*)malloc(len * sizeof(int))) == NULL)
{
printf("s->date fail\n");
return NULL;
}
memset(s->date,0,len*sizeof(int));
s->maxlen = len;
s->top = -1;
return s;
}
5、入栈思路
int zhaninseart(zhan* z,int a)
{
if (z->top == N)
{
return -1;
}
z->top++;
z->date[z->top] = a;
return 0;
}
6、出栈思路
int zhanout(zhan* z)
{
if (z == NULL)
{
return -1;
}
if (z->top == -1)
{
return -1;
}
while (z->top != -1)
{
z->top--;
printf("%d ",z->date[z->top+1]);
}
printf("\n");
return 0;
}
7、链式栈(就是把链表当栈用 )