用c语言初始化栈:sqStack * createStack( )
时间: 2023-12-19 22:04:26 浏览: 124
基于C语言的数据结构-栈stack
以下是用C语言初始化栈的代码:
```
#include <stdio.h>
#include <stdlib.h>
#define STACK_INIT_SIZE 100
typedef struct {
int *base; // 栈底指针
int *top; // 栈顶指针
int size; // 栈的大小
} sqStack;
sqStack *createStack() {
sqStack *s = (sqStack *) malloc(sizeof(sqStack));
if (!s) {
printf("内存分配失败!");
exit(1);
}
s->base = (int *) malloc(STACK_INIT_SIZE * sizeof(int));
if (!s->base) {
printf("内存分配失败!");
exit(1);
}
s->top = s->base;
s->size = STACK_INIT_SIZE;
return s;
}
```
在这段代码中,我们定义了一个sqStack结构体,其中包含三个成员变量:base表示栈底指针,top表示栈顶指针,size表示栈的大小。在createStack函数中,我们首先使用malloc函数分配内存空间,然后将base指针指向这段内存空间,同时将top指针指向base,表示栈为空。最后,我们将栈的大小设置为STACK_INIT_SIZE,这里默认设为100。
阅读全文