数据结构学习笔记(二)

本文探讨了数据结构中的栈,包括顺序栈和链栈的定义及特点。顺序栈在初始化时通常设定基本容量,而链栈则采用单链表存储元素。此外,还介绍了栈在数制转换和括号匹配检查等实际问题中的应用。
摘要由CSDN通过智能技术生成

数据结构——栈

栈:仅限在表尾进行插入或删除操作的线性表。表尾段称为栈顶(top),表头端称为栈底(bottom)。
特点:先进先出
栈的存储方式:顺序栈和链栈

一.栈的结构
1.顺序栈

顺序栈:利用一组地址连续的存储单元依次存放元素
一般在初始化设定空栈时不限定栈的最大容量,而是先为栈分配一个基本容量,在应用过程中,当栈的空间不够使在逐段扩大。
顺序栈的结构体定义如下:

typedef struct{
   
    SElemType *base;
    SElemType *top;
    int stacksize;//栈的当前可使用的最大容量
}SqStack;

也可定义为如下结构体:

#define MaxSize 100;  //栈的初始容量
typrdef struct{
   
ElemType data[MaxSize];
int top;  //栈顶元素的位置
}SqStack;
2.链栈

链栈:以单链表的方式存放元素
链栈的示意图
链栈的结构体定义如下:

typedef struct node{
   
    ElemType data;
    struct node *next;
}LinkStack;

链栈的操作易于实现,不做讨论。

二.栈的常见应用
1.数制转换

对输入的任意一个非负十进制整数,打印输出与其等值的二进制数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值