数据结构--链式栈

一.链式栈的栈顶在哪里?

image-20230613214428726.png


二.链栈的结构:

typedef struct LSNode{
int data;
struct LSNode* next;
}LSNode ,*PLStack;

//链栈的节点.由于栈顶在第一个数据节点,所以不需要top指针

三.链式栈的实现:

//初始化LSNode* p = (LSNode*)malloc(sizeof(LSNode));assert(p != NULL);p->data = val;p->next = ps->next;ps->next = p;return true;
}
//获取栈顶元素的值,但是不删除
bool  GetTop(PLStack ps, int* rtval )
{assert(ps != NULL);if (ps == NULL)return false;if (IsEmpty(ps))return   false;*rtval=ps->next->data;return true;
}
//获取栈顶元素的值,但是删除
bool   Pop(PLStack ps, int* rtval)
{assert(ps != NULL);if (ps == NULL)return false;if (IsEmpty(ps))return   false;LSNode* p = ps->next;*rtval = p->data;ps->next = p->next;free(p);return true;
}
//判空
bool IsEmpty(PLStack ps)
{return ps->next == NULL;
}
//获取栈中有效元素的个数
int  GetLength(PLStack ps)
{assert(ps != NULL);if (ps == NULL)return -1;int count = 0;for (LSNode* p = ps->next; p != NULL; p = p->next){count++;}return count;
}
//清空所有的数据
void Clear(PLStack ps)
{Destroy(ps);
}
//销毁
void Destroy(PLStack ps)
{//总是删除第一个数据节点LSNode* p;while (ps->next != NULL){p = ps->next;ps->next = p->next;free(p);}
}

四.链式栈的总结:

链栈栈顶:栈顶在表头(即第一个数据节点)(时间复杂度是O(1))

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066

很奇怪的问题,在使用nifi的时候碰到的,这里是用NIFI,把数据从postgresql中同步到mysql中, 首先postgresql中的源表,中是没有create_time这个字段的,但是同步的过程中报错了. 报错的内容是说,目标表中有个create_time字段,这个字段是必填的,但是传过来的flowfile文件中,的数据没…

Kali中间人攻击

中间人攻击 中间人攻击(Man-in-the-Middle Attack,简称MITM)是一种网络安全攻击,其中攻击者插入自己(作为“中间人”)在通信的两个端点之间,以窃取或篡改通过的数据。攻击者可以监视通信&#x…

Composer 安装与使用

文章目录 Composer的主要特点:Composer 的安装Windows 平台Linux 平台Mac OS 系统 Composer 的使用require 命令update 命令remove 命令search 命令show 命令 基本约束精确版本范围通配符波浪号 ~折音号 ^ 版本稳定性 Composer 是PHP编程语言的一个依赖管理工具。它…

【R语言从0到精通】-3-R统计分析(列联表、独立性检验、相关性检验、t检验)

上两次教程集中学习了R语言的基本知识,那么我们很多时候使用R语言是进行统计分析,因此对于生物信息学和统计科学来说,R语言提供了简单优雅的方式进行统计分析。教程参考《Rlearning》 3.1 描述性统计分析 3.1.1 载入数据集及summary函数 我…

广州南沙番禺联想SR530服务器主板传感器故障维修

今日分享一例广州市南沙区联想ThinkSystem SR530服务器sensor sysbrd vol故障问题维修案例; 服务器型号是:Lenovo thinksystem sr530 g6服务器 服务器所在位置:广东省广州市南沙区 服务器故障问题:机房异常停电,来电后…

HarmonyOS开发学习:【DevEco Device Tool 安装配置(问题全解)】

本文介绍如何在Windows主机上安装DevEco Device Tool工具。 坑点总结: 国内部分网络环境下,安装npm包可能会很慢或者超时,推荐使用国内npm源(如淘宝源、华为源等);serialport这个npm包安装的过程中需要编…

透视晶圆制造黑匣子:RFID赋能智能生产,构建晶圆盒全程精准追溯体系

透视晶圆制造黑匣子:RFID赋能智能生产,构建晶圆盒全程精准追溯体系 应用背景 在全球半导体产业链中,晶圆盒作为承载硅片的重要载体,其生产过程的精细化管理和追溯显得至关重要。近年来,一种名为RFID(Radi…

Fast-lio2运行时如何显示轨迹线

修改对应设备的.yaml文件,以velodyne为例: 将 path_en参数改为true即可,运行其他设备,修改对应的参数

mysql面试题 1

为什么要使用数据库 数据保存在内存 优点: 存取速度快缺点: 数据不能永久保存 数据保存在文件 优点: 数据永久保存缺点:1、速度比内存操作慢,频繁的IO操作。2、查询数据不方便 数据保存在数据库 数据永久保存使用SQL语…

跟TED演讲学英文:The inside story of ChatGPT‘s astonishing potential by Greg Brockman

The inside story of ChatGPT’s astonishing potential Link: https://www.ted.com/talks/greg_brockman_the_inside_story_of_chatgpt_s_astonishing_potential Speaker: Greg Brockman Date:April 2023 文章目录 The inside story of ChatGPTs astonishing potentialIntro…

path环境变量的作用

当我把一个运行文件的路径加入到了path环境变量,就可以在cmd命令行随时使用运行。 在path中有两个path上面的是用户的path,下面的是计算机的path

77、WAF攻防——权限控制代码免杀异或运算变量覆盖混淆加密传参

文章目录 WAF规则webshell免杀变异 WAF规则 函数匹配 工具指纹 webshell免杀变异 php 传参带入 eval可以用assert来替换,assert也可以将字符串当作php代码执行漏洞 php 变量覆盖 php 加密 使用加密算法对php后门进行加密 php 异或运算 简化:无字符webshellP 无数字字母rc…

NAPI 类对象导出及其生命周期管理(下)

4. 样例工程源码剖析 工程的模板是Native C,模型是Stage。源码剖析主要围绕以下几个文件 4.1. NAPI导出对象和生命周期管理具体实现 4.1.1. 定义NapiTest类及方法 Napi.h文件内容如下: #ifndef __NAPI_TEST_H__ #define __NAPI_TEST_H__#include "napi/nat…

Android Studio开发学习(六)———TableLayout(表格布局)、FrameLayout(帧布局)

目录 前言 一、Tablelayout (一)Tablelayout的相关简介 (二)TableLayout使用方法 1. 当TableLayout下面写控件、则控件占据一行的大小。(自适应一行,不留空白) 2.多个组件占据一行,则配合TableRow实现…

VulnHub靶机-easy_cloudantivirus 打靶

easy_cloudantivirus 靶机 目录 easy_cloudantivirus 靶机一、导入虚拟机配置二、攻击方式主机发现端口扫描web渗透-SQL注入命令注入反弹shellssh爆破提权 一、导入虚拟机配置 靶机地址: https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453/下载完成&am…

计算机网络-TCP断开连接阶段错误应对机制

连接断开阶段 四次挥手机制:TCP连接的断开需要四次挥手,这是因为双方都需要独立地关闭数据传输。第二次和第三次挥手不能合并,因为在回复第二次挥手的时候,可能还有数据没有接收完成,所以需要先回复ACK报文&#xff0c…

KNN分类算法的MATLAB实现以及可视化

一、KNN简介 KNN算法,即K-Nearest Neighbors,是一种常用的监督学习算法,可以用于分类问题,并且在实际应用中取得了广泛的成功。 二、KNN算法的基本原理 对于给定的测试样本,KNN算法首先计算它与训练集中所有样本的距…

编译器领域一些特别好的文章

xz​​​​​​​s​​​​​​​cv_note/cv算法工程师成长路线.md at master HarleysZhang/cv_note GitHub记录cv算法工程师的成长之路,分享计算机视觉和模型压缩部署技术栈笔记。https://harleyszhang.github.io/cv_note/ - cv_note/cv算法工程师成长路线.md at…

kail渗透工具之nmap的使用方法

准备工作:开启两台虚拟机和一台Windows主机 kail Linux攻击机:192.168.80.131 red hat靶机:192.168.80.129 Windows主机:192.168.252.42 1、nmap扫描工具的简介 nmap是用来探测计算机网络上的主机和服务的一种安全扫描器。为了绘…

【教资】总结经验篇

4月.12日概述 今天是2024年上半学期中小学出成绩的一天,查到成绩的那一刻是灰常让人激动的,很开心,特此记下此时的真实感受,我也没有去问别人怎么样,特此针对自己以记之,加上最近有点摆烂,所以…