C语言获取mysql表数据结构_C语言实现数据结构-栈

栈是仅在表尾进行插入、删除操作的线性表。即栈 S= (a1, a2, a3, ………,an-1, an),其中表尾(即 an 端)称为栈顶 /top,表头(即 a1 端)称为栈底/base。

由于只能在表尾进行操作,因此栈的运算规则就是“后进先出”(LIFO)

提起栈,最常见的用途就是调用函数了,例如JS里面的执行栈,但是栈可以用于递归运算、简化程序等等。

和线性表类似,栈也有两种存储结构——顺序栈与链栈

栈的顺序存储结构——顺序栈

顺序栈的表示与实现

用C语言表示栈的顺序结构

#define STACK_INIT_SIZE 100

#define STACKINCREMENT 10

typedef struct

{

SElemType *base; // 栈底指针(始终指向栈底)

SElemType *top; // 栈顶指针

int stacksize; // 当前栈的最大容量

} SqStack;

用下图表示就是

其中: 1. s.base 始终指向栈底 2. s.top 始终指向栈顶元素的下一个位置 3. s.base = NULL 表示栈结构不存在 4. s.top = s.base 表示栈空 5. top-base = stacksize 表示栈满

顺序栈的基本操作

1. 初始化栈

Status initStack(SqStack *S)

{

S.base = (SElemType *)malloc(STACK_INIT_SIZE*sizeof(ElemType));

i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值