青岛大学_王卓老师【数据结构与算法】Week05_10_顺序栈的操作3_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。

一方面用于学习记录与分享,

另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。

如有侵权,请留言作删文处理。

课程视频链接:

数据结构与算法基础–第05周10–3.3栈的表示和实现6–3.3.3链栈表示和实现

📚 【Week05】10_链栈的表示和实现

链栈:链式结构存储栈。

链栈的表示

链栈是运算受限的单链表,只能在链表头部进行操作

链栈的数据类型定义
typedef struct StackNode{
    SElemType data;
    struct StackNode* next;
}StackNode, *LinkStack;

LinkStack S;
链栈的存储

在这里插入图片描述

⚠️ NOTE

(1) 链表的头指针就是栈顶

(2) 不需要头结点

(3) 基本不存在栈满的情况

(4) 空栈相当于头指针指向空

(5) 插入和删除仅在栈顶处执行

链栈的初始化

void InitStack(LinkStack& S){
    // 构造一个空栈,栈顶指针置为空
    S = NULL;
    
    return OK;
}

判断链栈是否为空

Status StackEmpty(LinkStack S){
    if(S == NULL) 
        return TRUE;
    else
        return FALSE;
}

链栈的入栈

在这里插入图片描述

Status Push(LinkStack& S, SElemType e){
	// 生成新结点 p
    p = new StackNode;
    // 将新结点数据域置为 e
    p->data = e;
    // 将新结点插入栈顶
    p->next = S;
	// 修改栈顶指针
    S = p;
    
    return OK;
}

链栈的出栈

在这里插入图片描述

Status Pop(LinkStack& S, SElemType& e){
	if(S == NULL)
        return ERROR;
	e = S->data;
    p = S;
    S = S->next;
    delete p;
    
    return OK;
}

取栈顶元素

在这里插入图片描述

SElemType GetTop(LinkStack S){
	if(S != NULL)
        return S->data;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/40509.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【区块链+体育】“数智化”的杭州亚运会,中创助力区块链技术发展

“智能”,是杭州亚运会的办赛理念之一。除了数字藏品开亚运先河,杭州亚组委充分应用区块链、大数据、人工智能等前沿技术,为观众提供从购票、出行、观赛到住宿、美食和旅游等“一站式”服务。 本次亚运会将全程智能陆续落到了实处&#xff0…

简述直线导轨的预压力

直线导轨的预压力是预先给予钢珠负荷力,通俗来说就是加大钢珠直径,利用钢珠和珠道之间负向间隙给予预压,这个举动可以提高直线滑轨的刚性和消除间隙,值得注意的一点是小规格建议选用轻预压以下的预压,避免因为预压选用…

【Spring Boot】Web开发 — Web开发简介

Web开发简介 首先介绍Spring Boot 提供的Web组件spring-boot-starter-web,然后介绍Controller和RestController注解,以及控制数据返回的ResponseBody注解,最后介绍Web配置,以便让读者对使用Spring Boot开发Web系统有初步的了解。…

C# 动态字典(可以随机实时增删访问,保证先入先出的字典)

如果你有以下需求: 1. 需要对Dictionary进行遍历的同时移除或者添加元素 2. 需要按顺序遍历Dictionary并且保证先入先出 3. 需要即时的获取字典内的元素数量,即时增删 如果你觉得好,请给我的框架点一个免费的star,球球啦 Yueh0607…

TX Barcode .NET for WPF Crack

TX Barcode .NET for WPF Crack 用于WPF软件的TX Barcode.NET包括一天完成的功能以及用于WPF的软件的2D条形码控制。 用于WPF的TX Barcode.NET的功能和属性: 它具有以下特性和属性,如: 常见的文字处理功能:它可以为用户和开发人员…

一百三十、海豚调度器——用DolphinScheduler定时调度HiveSQL任务

一、目标 用海豚调度器对Hive数仓各层数据库的SQL任务进行定时调度。比如,DWD层脱敏清洗表的动态插入数据、DWS层指标表的动态插入数据 二、工具版本 1、海豚调度器:apache-dolphinscheduler-2.0.5-bin.tar.gz 2、Hive:apache-hive-3.1.2…

selenium WebDriver 中的几种等待--sleep(),implicitly_wait(),WebDriverWait()

目录 强制等待:sleep() 隐式等待:implicitly_wait() 显示等待:WebDriverWait() 与until()或者until_not()方法结合使用 WebDriverWait与expected_conditions结合使用 显示等待,自定义等待条件 强制等待:sleep() import time sleep(5) #等待5秒 设置固定休眠时间&#x…

webpack打包

webpack打包 1、webpack再次打包2、webpack的入口和出口 1、webpack再次打包 背景:代码增加之后,如何打包呢? 1、确保在src/index.js引用和使用 2、重新执行yarn build打包命令 2、webpack的入口和出口 1、新建webpack.config.js配置文件 …

Redis的五大数据类型和各自的

- 字符串(String) string 数据结构是简单的 key-value 类型。简单动态字符串**(simple dynamic string,SDS)。相比于 C 的原生字符串,Redis 的 SDS 不光可以保存文本数据还可以保存二进制数据,并且获取字符串长度复杂度…

django框架向DRF框架演变过程详解

一、Django框架实现项目查询接口 主要知识点: Django框架视图函数 1、在 Django 项目中创建一个应用(如果还没有创建): python manage.py startapp projects 2、在项目的 models.py 文件中定义项目模型 from django.db impor…

JavaWeb(5)——HTML、CSS、JS 快速入门

一、JavaScript 对象 二、JavaScript BOM对象 和 DOM对象 关于BOM主要对 Window 和 location 进行说明&#xff1a; 三、JavaScript 事件监听 事件绑定 常见事件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…

OpenCv之图像形态学

目录 一、形态学 二、图像全局二值化 三、自适应阈值二值化 四、腐蚀操作 五、获取形态学卷积核 六、膨胀操作 七、开运算 八、闭运算 一、形态学 定义: 指一系列处理图像形状特征的图像处理技术形态学的基本思想是利用一种特殊的结构元(本质上就是卷积核)来测量或提取输…

【SQL】计算每个人的完成率

目录 前提任务的完成率前三名拓展&#xff1a;达梦如何去实现除法有余数拓展&#xff1a;MySQL 任务的完成率前三名 前提 达梦数据库&#xff1a; select 1/3; # 0不要求四舍五入 任务的完成率前三名 # nick_name 人名 # finishNum 当前这个人的任务完成数 # total 当前这…

STM32学习笔记(十二)丨RTC实时时钟

本篇文章包含的内容 一、计算机底层计时系统——时间戳1.1 时间戳简介1.2 GMT/UTC1.3 C语言和time.h库 二、STM32的BKP和RTC时钟2.1 BKP&#xff08;Backup Registers&#xff09;备份寄存器2.2 RTC&#xff08;Real Time Clock&#xff09;实时时钟2.2.1 RTC简介2.2.2 RTC的内…

概率论和随机过程的学习和整理20:条件概率我知道,但什么是条件期望?可用来解决递归问题

目录 1 目标问题&#xff1a; 什么是条件期望&#xff1f; 条件期望有什么用&#xff1f; 2 条件期望&#xff0c;全期望公式 3 条件期望&#xff0c;全期望公式 和 条件概率&#xff0c;全概率公式的区别和联系 3.1 公式如下 3.2 区别和联系 3.3 概率和随机过程 4 有什…

简单认识MySQL数据库索引

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、索引的概念1、简介2、作用3、索引的副作用&#xff1a;4、创建索引的原则依据5、索引的分类 二、索引的增删改查1.创建索引&#xff08;1&#xff09;创建普通索…

VoIP监控工具有什么作用

VoIP 监控工具利用思科的 IPSLA 技术生成合成流量并监控客户端体验的呼叫质量。与被动监控VoIP指标相反&#xff0c;IPSLA技术允许IT管理员主动并在潜在问题发生之前检测到它们&#xff0c;这使组织能够轻松遵守严格的SLA指标。 思科 IPSLA 技术在两台设备之间创建流量&#x…

使用semanage管理SELinux安全策略

semanage命令用于管理SELinux的策略&#xff0c;格式为“semanage [选项] [文件]”。 SELinux服务极大地提升了Linux系统的安全性&#xff0c;将用户权限牢牢地锁在笼子里。semanage命令可以设置文件、目录的策略&#xff0c;还可以管理网络端口、消息接口。 常用参数&#xf…

240. 搜索二维矩阵 II

题目描述&#xff1a; 主要思路&#xff1a; 利用矩阵中的单调性进行搜索。 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int nmatrix.size(),mmatrix[0].size();int in-1,j0;while(i>0&&j<m){if(m…

架构训练营学习笔记:4-2 存储架构模式之复制架构

高可用的关键指标 问题&#xff1a;分为故障跟灾难。不是有了多活架构就不在用复制架构 &#xff0c;还是之前的合适原则&#xff1a;多活架构的技术复杂度 跟成本都比复制架构高。 高可用的关键指标 恢复时间目标(RecoveryTimeObjective&#xff0c;RTO)指为避免在灾难发生后…