数据结构期末复习二:栈和队列

本文详细介绍了数据结构中的栈和队列。栈是限定在表尾进行插入和删除的线性表,遵循LIFO原则。讨论了顺序栈和链栈的实现,包括读栈顶元素、入栈和出栈操作。队列则是一种FIFO的线性表,分为顺序队列和链队列。内容涵盖了单链队列的构建、入队和出队,以及循环队列的顺序表示和操作。
摘要由CSDN通过智能技术生成

定义

(stack)是限定仅在表尾进行插入和删除操作的线性表
表尾端称为栈顶(top),表头端称为栈底(bottom)。
不含元素的空表称为空栈。

基本特点
1。先入后出,后入先出。(LIFO)
2.除头尾节点之外,每个元素有一个前驱,一个后继。

表示和实现

栈有两种存储表示方法:顺序栈链栈

顺序栈的数据结构

#define STACK_INT_SIZE //存储空间分配初始量 
#define STACKINCREMENT //存储空间分配增量

typedef struct{
   
	SElemtype *base;//栈底指针
	SElemtype *top;//栈顶指针
	int stacksize;//栈已分配的空间大小 
}SqStack; 

base始终指向栈底;top指针初值指向栈底(top=base),每插入新的元素,top指针增1(非空栈中的栈顶指针始终在栈顶元素的下一个位置上

构建空栈

bool InitStack (SqStack &S){
   
	S.base=(SElemtype *)malloc(STACK_INT_SIZE*sizeof(SElemtype));
	if(!base) return 0;
	S.top=S.base;
	S.stacksize=STACK_INT_SIZE;
	return 1;
} 

读栈顶元素

SElemtype GetTop(SqStack &S){
   
	SElemtype e=*(S.top-1);
	return e;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值