cs-栈和队列

本文介绍了数据结构中的栈和队列。对于栈,包括顺序栈和链式栈,详细阐述了栈顶指针、进栈、出栈等基本操作。而对于队列,讲解了顺序队列和循环队列的概念,以及队头、队尾的操作,并提到了链式队列的存储类型和相关操作。
摘要由CSDN通过智能技术生成

一、栈


栈:先进后出-从上面进从上面出下层的要取出必须先取上层的
队列:先进先出-先进的排到最后面,后进的在最前面,要出的话从后面出

push(&S,x)  进栈
pop(&S,x)   出栈

顺序栈

#define MaxSize 50          //定义栈中元素的最大个数
typedef struct{
   
	Elemtype data[MaxSize];      //存放栈中元素
	int top;                    //栈顶指针top,初始S.top=-1,
}SqStack;

栈顶指针:S.top,初始为S.top=-1;
栈顶元素:S.data[S.top];top始终指向栈顶元素
进栈:栈不满时,栈顶指针top先加1,再进赋值
出栈:栈非空时,先取栈顶元素,栈顶指针再减1
栈空条件:S.top == -1;
栈满条件:S.top == MaxSize-1;
栈长:S.top+1;

栈基本运算:
(1)初始化栈

void InitStack(&S){
   
	s.top=-1;                //初始化栈顶指针
}

(2)判空栈

bool StackEmpty(S){
   
	if(s.top==-1)
		return true;        //栈空
	else
		return false;       //非空
}

(3)进栈

bool Push(SqStack &S,ElemType x){
   
	if(S.top==MaxSize-1)          //栈满则不能进栈,报错
		return false;
	S.data[++S.top] = x;          //指针先加1,x再赋值指针进栈
	return true}

(4)出栈

bool Pop<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值