栈
结构体:
typedef struct SNode
{
int Data[MAXSIZE];
int top;
}*Stack;
初始化栈:
Stack InitStack(Stack S)
{
S = (Stack) malloc(sizeof(Stack));
S->top = -1;
return S;
}
入栈:
void Push(Stack S,int a)
{
if(S->top==MAXSIZE-1){
printf("栈满");
return;
}
S->Data[++S->top] = a;
}
出栈:
int Pop(Stack S)
{
if(S->top==-1){
printf("栈空");
return 0;
}
return S->Data[S->top--];
}
得到栈顶:
int GetTop(Stack S)
{
return S->top;
}
完整代码:
#include<stdio.h>
#include<malloc.h>
#define MAXSIZE 100
typedef struct SNode
{
int Data[MAXSIZE];
int top;
}*Stack;
//初始化栈
Stack InitStack(Stack S)
{
S = (Stack) malloc(sizeof(Stack));
S->top = -1;
return S;
}
//入栈
void Push(Stack S,int a)
{
if(S->top==MAXSIZE-1){
printf("栈满");
return;
}
S->Data[++S->top] = a;
}
//出栈
int Pop(Stack S)
{
if(S->top==-1){
printf("栈空");
return 0;
}
return S->Data[S->top--];
}
//得到栈顶
int GetTop(Stack S)
{
return S->top;
}
int main()
{
Stack S;
S = InitStack(S);
Push(S,3);
Push(S,4);
// printf("%d",S->Data[S->top]);
printf("%d\n",Pop(S));
printf("%d\n",Pop(S));
}
刚考完研,学了408(数据结构、计算机组成原理、计算机网络、操作系统),想着把数据结构的代码重新敲一遍,加深印象。若有错误望大家能指正。