1.栈是一种特殊的线性结构
①栈满足线性结构
②栈特殊性:栈有特殊的存储方式,访问结构(先进先出,进和出在一个端)
2.栈的操作:
①入栈:向栈口放入数据元素(push)
②出栈:从栈口取出数据元素(pop)
栈顶指针(top):用来指向最后一个入栈元素
入栈操作:
设栈的最大长度为size,栈满不可入栈(上溢)[top=size-1]
入栈:
top=top+1;s[top]=数据元素
出栈操作:
只有栈顶元素才可出栈,栈空不可出栈
栈空条件:top=-1;
3.例子:设有序列1,2,3依次入栈,则出栈序列
出栈:1,2,3; 1,3,2; 2,1,3; 2,3,1; 3,2,1;
4.栈的应用:
例子:注意输入正整数x,输出x的二进制数
void ExchangeBin(int x)
{
int a[10],top;
top=-1;
while(x){
a[++top]=x%2;
x/=2;
}
while(top>-1)
printf("%d"a[top--]);
}