在数据结构中,栈是很重要的概念之一,但是C语言中却没有对应的数据结构。这大概是因为栈的结构过于简单。
通过顺序表,或者链表我们都可以实现一个栈。
在栈中,我们有入栈,出栈,取栈顶元素三种基本操作。除此之外,我们还应该对栈进行初始化,(初始化是编程中很重要的习惯,不爽不要编程)
#include <stdio.h>
#include <stdlib.h>
#define 100 MAX;
typedef char StackType;
//extern StackType *data = (StackType*)malloc(sizeof(StackType));
typedef struct Stack{
StackType* st;
size_t size;
}Stack;
void StackInit(Stack* stack,StackType* base){//栈的初始化
if (stack == NULL)
return;
stack->size = 0;
stack->st = (StackType *)malloc((sizeof(StackType) * 100));
base = stack->st;
return;
}
在开始的时候,我想到的是用extern定义一个全局变量,然后用malloc开辟一块内存空间,但是在实际的过程中,我发现这个在外部定义全局变量会下降代码的可读性。让我们在实际使用时候忘记全局变量。所以最后我们采用在Init中对顺序表进行定义。