栈(考研复习)

一、采用顺序存储结构实现栈(即顺序栈)

总结:

Stack.h

cpp 复制代码
#pragma once
#include<stdio.h>
#include<stdbool.h>

#define MaxSize 10
typedef int ElemType;
// 采用顺序结构实现栈
// 定义栈的结构
typedef struct SqStack
{
	ElemType arr[MaxSize]; // 栈中最多可以存储MaxSize个ElemType类型的数据
	int top; // top是栈顶指针,指向栈顶元素
}SqStack;

// 栈的初始化
void Init(SqStack& S); 

// 判断栈是否为空。为空返回true,否则返回false。
bool Empty(SqStack S);

// 新元素x入栈
bool Push(SqStack& S, ElemType x);

// 删除栈顶元素(出栈操作),并将栈顶元素的值赋给变量e
bool Pop(SqStack& S, ElemType& e);


// 获取栈顶元素,并将栈顶元素的值赋给变量e
bool GetTop(SqStack S, ElemType& e);

Stack.cpp

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
#include"Stack.h"
// 栈的初始化
void Init(SqStack& S)
{
	S.top = -1;
}

// 判断栈是否为空。为空返回true,否则返回false
bool Empty(SqStack S)
{
	if (S.top == -1)
		return true;	// 栈为空
	else
		return false;	// 栈不为空
}

// 新元素x入栈
bool Push(SqStack& S, ElemType x)
{
	if (S.top == MaxSize - 1) // 此时表示栈中已经存满了元素,无法执行入栈操作
		return false;
	S.top++;
	S.arr[S.top] = x; // 将新元素x放到栈顶的位置
	return true;
}


// 删除栈顶元素(出栈操作),并将栈顶元素的值赋给变量e
bool Pop(SqStack& S, ElemType& e)
{
	if (S.top == -1) // 表示此时栈为空,无法执行出栈操作
		return false;
	e = S.arr[S.top]; // 将栈顶元素赋给e
	S.top--;
	return true;
}


// 获取栈顶元素,并将栈顶元素的值赋给变量e
bool GetTop(SqStack S, ElemType& e)
{
	if (S.top = -1)
		return false; // 表示栈为空,无法指向获取栈顶元素的操作
	e = S.arr[S.top];
	return true;
}

二、共享栈

共享栈就是两个栈共享同一片空间

cpp 复制代码
// 定义共享栈的结构(两个栈共享同一块内存,这两个栈分别命名为0号栈与1号栈)
# define MaxSize 10
typedef int ElmeType;
typedef struct ShStack {
	ElmeType data[MaxSize];
	int top0; // 0号栈的栈顶指针
	int top1; // 1号栈的栈顶指针
}ShStack;

// 共享栈的初始化
void InitStack(ShStack& S)
{
	S.top0 = 0;
	S.top1 = MaxSize;
}

// 共享栈满了的条件:S.top0+1 == S.top1
相关推荐
希和20277 天前
考研英语阅读词汇笔记|城市野径、抄近道步道(非正式小路)
笔记·考研
MicrosoftCloud11 天前
计网 14|HTTP 协议核心:报文结构、状态码、持续连接
计算机网络·考研·http·状态码·408·万维网·持续连接
aichitang202412 天前
代数拓扑学与现代前沿视角
考研·算法·数学建模·ai·拓扑学·高考
MicrosoftCloud12 天前
计网 12|ARP、DHCP、ICMP:地址解析、动态分配与差错报告
计算机网络·考研·408·arp·dhcp·icmp·ping
优化控制仿真模型12 天前
2026【英一】考研英语一历年真题及答案解析PDF电子版(1980-2025年)
考研·pdf
希和202712 天前
考研高数综合题|二重积分(平移极坐标)
考研
MicrosoftCloud13 天前
计网 11|NAT 与 IP 地址转换:私有地址、NAPT 端口映射
计算机网络·考研·ip地址·408·nat·napt·私有地址
killerbasd13 天前
总结 10。31
考研
新中地GIS开发老师14 天前
资源与环境(地理信息工程)这个专业怎么样
考研·信息可视化·资源与环境
MicrosoftCloud14 天前
计网 09|TCP 流量控制与拥塞控制:rwnd 滑动窗口 + 慢开始/拥塞避免/快重传快恢复
计算机网络·考研·tcp·流量控制·拥塞避免·拥塞控制·慢开始