C语言栈是什么,栈在哪,需要定义吗?

Python010

C语言栈是什么,栈在哪,需要定义吗?,第1张

“栈”是一种后进先出(LIFO,或叫先进后出FILO)的数据结构这是数据结构的范畴。

您所说的栈,是由操作系统负责管理的一段栈空间,在递归、子程序调用等处应用广泛。这是操作系统的范畴。

——并不是在C语言范畴讨论的概念。

#define STACK_INIT_SIZE 100 //c语言中定义一个常量。STACK_INIT_SIZE =100

#define STACKINCREMENT 10 //c语言中定义一个常量。STACKINCREMENT =10

#include <stdio.h>

#include <stdlib.h>//包含两个头文件。stdio.h和stdlib.h

typedef struct //定义一个数据结构 里面包含三个变量,两个整型的指针,和一个整型的变量

{int *base

int *top

int stacksize}sqstack

int initstack(sqstack s) //初始化栈的函数

{

s.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int)) //为s.base分配空间大小为100*2字节空间

if(!s.base) exit(-1) //如果s.base 为空推出。

s.top=s.base//不为空时则s.top=s.base.s.stacksize就赋值为100

s.stacksize=STACK_INIT_SIZE

return 1 //返回1

}

栈是一种数据存储的结构,其实跟数组,队列的存储方式是一样的,主要是它有存储的规则,就是先进后出,只在栈定操作。

也就是说数据存入一个栈,取出的是最后一个存入的数据,必须从最后一个开始取。

可参考百度百科和维基百科