数据结构笔记
空栈,入栈,出栈
C语言中并没有栈这种数据结构,则自定义数据结构
空栈
typedef struct{
char *base; // 栈底
char *top; // 栈顶
int stacksize;// 容量
}stack;
main(){
stack stack;//后`stack`为栈名 前`stack`为数据类型 /*在此语句时栈stack 尚不存在*/
stack.base=
(char *)malloc(100*sizeof(char));
stack.top=stack.base;//空栈
stack.stacksize=100;
/*构建了含有100个字符空间的栈`stack`*/
入栈
*stack.top='a';//栈顶元素赋值
stack.top++;//栈顶上提
printf("%C",*(stack.top-1));
或者
push(char e)
{
*stack.top=e;
stack.top++;
}
main(){
stack stack;
stack.base=
(char *)malloc(100*sizeof(char));
stack.top=stack.base;
stack.stacksize=100;
push('a');
push('b');
push('c');//完成 a,b,c 的入栈
printf("%C",*(stack.top-1));
出栈
stack.top--;//top下降即出栈
e=*stack.top;//出栈的元素即现在top指向的元素
或
char pop(){
stack.top--;
e=*stack.top;
return e;
}//出栈
main(){
...
printf("%c",pop());
}