📄 顺序存储.txt
字号:
#include<stdio.h>
#include<stdlib.h>
#define elemtype int
typedef struct LsNode{
elemtype *elem;//给栈以动态形式分配内存,elem=(elemtype *)malloc(sizeof(elemtype)*length);
int length; //栈的空间大小,可以由用户来决定它的大小
int top;
} STACK;
//顺序存储的栈结构,以及其相应算法
void InitStack(STACK *S, int len)
{//初始化空栈
S->length=len;
S->elem = (elemtype *)malloc(sizeof(elemtype)*len);
S->top = -1;
}
int EmptyStack(STACK *S)
{//判断是否栈空,为空则返回1,否则返回0
if(S->top==-1){
return 1;
}
else{
return 0;
}
}
int push(STACK *S, elemtype x)
{//元素x进栈操作,成功返回1,否则返回0
if(S->top<S->length-1){
S->top++;
S->elem[S->top]=x;
return 1;
}
else{
return 0;
}
}
elemtype pop(STACK *S)
{//出栈操作,返回出栈元素
elemtype x;
if(EmptyStack(S)){
printf("栈为空");
return 0;
}
else{
x=S->elem[S->top];
S->top--;
return x;
}
}
void Print(STACK *S)
{//依次输出栈顶到栈底的所有元素
int i;
for(i=S->top;i>=0;i--){
printf("%4d",S->elem[i]);
}
printf("\n");
}
int main(void)
{
STACK *s=(STACK*)malloc(sizeof(STACK));
InitStack(s,100);
push(s,1);
push(s,2);
push(s,4);
Print(s);
push(s,5);
Print(s);
pop(s);
Print(s);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -