网站还是app淮南市潘集区信息建设网站

diannao/2026/1/19 0:08:36/文章来源:
网站还是app,淮南市潘集区信息建设网站,上门做美容的有什么网站,抚州公司做网站1、栈 1.1、栈的概念及结构 栈#xff1a;一种特殊的线性表#xff0c;其只允许在固定的一端进行插入和删除元素操作。__进行数据插入和删除操作的一端称为栈顶#xff0c;另一端称为栈底。__栈中的数据元素遵守__后进先出#xff08;先进后出#xff09;__LIFO#xf…1、栈 1.1、栈的概念及结构 栈一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。__进行数据插入和删除操作的一端称为栈顶另一端称为栈底。__栈中的数据元素遵守__后进先出先进后出__LIFOLast In First Out的原则。 压栈栈的插入操作叫做进栈/压栈/入栈入数据在栈顶。 出栈栈的删除操作叫做出栈。出数据也在栈顶。 栈stack是一种特殊的线性表是限定仅在一端通常是表尾进行插入和删除操作的线性表。 栈是仅在表尾进行插入、删除操作的线性表。 表尾即an端称为栈顶Top表头即a1端称为栈底Base。 例如 栈 S (a1,a2,a3…an) 总结表尾对应栈顶表头对应栈底。 栈有两种数组栈链表栈。 链式栈 如果是用尾做栈顶尾插尾删要设计成双向链表否则删除数据效率低。如果是用头做栈顶头插头删要设计成单向链表。 两种都可以非要选一种数组栈结构稍微好一点。 数组栈存放数据的方式 链式栈存放数据的方式 尾做栈顶 头做栈顶 总结栈和队列时线性表的子集是插入金额删除位置受限的线性表。 1.2、栈的思考题 问假设与3个元素abc。入栈顺序是abc。 则它们的出栈出栈顺序有几种可能 答案5种可能。下面解释 1c、b、a。原因入栈顺序为a、b、c然后依次取出。 2a、b、c。原因a先入栈然后出栈之后b入栈b出栈最后c入栈c出栈。 3a、c、b。原因a先入栈然后出栈之后b、c入栈最后c、b出栈。 4b、a、c。原因a、b先入栈之后b、a出栈最后c入栈c出栈。 5b、c、a。原因a、b先入栈之后b出栈然后c入栈最后c、a出栈。 2、顺序栈的实现用数组实现 栈主要有以下几个接口函数 初始化栈StackInit销毁StackDestroy栈顶插入数据StackPush栈顶删除数据StackPop取栈顶数据StackTop统计栈种元素个数StackSize判断栈是否为空StackEmpty 2.1、定义结构体和main函数 #pragma once#include stdio.h #include stdlib.h #include assert.h #include stdbool.htypedef int SLDataType;typedef struct Stack {SLDataType* a;int top; //栈顶int capacity; }; main函数 #include stack.hint main() {ST st;return 0; }2.2、初始化栈 //初始化栈 void StackInit(ST* ps) {assert(ps);ps-a NULL;ps-top ps-capacity 0; }2.3、销毁 //销毁 void StackDestory(ST* ps) {assert(ps);free(ps-a);ps-a NULL;ps-top ps-capacity 0; }2.4、栈顶插入数据 //栈顶插入数据 void StackPush(ST* ps, SLDataType x) {assert(ps);if (ps-top ps-capacity){int newcapacity ps-capacity 0 ? 4 : 2 * ps-capacity;SLDataType* tmp (SLDataType*)realloc(ps-a, sizeof(SLDataType) * newcapacity);if (tmp NULL){printf(realloc fail\n);exit(-1);}ps-a tmp;ps-capacity newcapacity;}ps-a[ps-top] x;ps-top; }2.5、栈顶删除数据 //栈顶删除数据 void StackPop(ST* ps) {assert(ps);assert(ps-top 0);ps-top--; }2.6、取栈顶元素 //取栈顶数据 SLDataType StackTop(ST* ps) {assert(ps);assert(ps-top 0);return ps-a[ps-top - 1]; }2.7、统计栈中元素个数 //统计栈中元素个数 int StackSize(ST* ps) {return ps-top; }2.8、判断栈是否为空 //判断栈是否为空 bool StackEmpty(ST* ps) {assert(ps);return ps-top 0; }3、全代码展示 这里使用三个文件 stack.h用于结构体、各种函数接口的声明stack.c用于各种函数接口的定义。test.c用于创建链表实现链表。 3.1、stack.h #pragma once#include stdio.h #include stdlib.h #include assert.h #include stdbool.htypedef int STDataType;typedef struct Stack {STDataType* a;int top; //栈顶int capacity; }ST;void StackInit(ST* ps); void StackDestroy(ST* ps); void StackPush(ST* ps, STDataType x); void StackPop(ST* ps); STDataType StackTop(ST* ps); //取栈顶的数据 int StackSize(ST* ps); //统计栈里面有多少个数据 bool StackEmpty(ST* ps);3.2、stack.c #include stack.hvoid StackInit(ST* ps) {assert(ps);ps-a NULL;//初始化时top给的是0意味着top指向栈顶数据的下一个。//初始化时top给的是-1意味着top指向栈顶数据。ps-top 0;ps-capacity 0; } void StackDestroy(ST* ps) {assert(ps);free(ps-a);ps-a NULL;ps-top ps-capacity 0;} void StackPush(ST* ps, STDataType x) {assert(ps);if (ps-top ps-capacity){int newCapacity ps-capacity 0 ? 4 : ps-capacity * 2;STDataType* tmp realloc(ps-a, sizeof(STDataType) * newCapacity);if (tmp NULL){printf(realloc fail\n);exit(-1);}ps-a tmp;ps-capacity newCapacity;}ps-a[ps-top] x;ps-top; } //删除数据 void StackPop(ST* ps) {assert(ps);assert(ps-top 0);ps-top--; }STDataType StackTop(ST* ps) //取栈顶的数据 {assert(ps);assert(ps-top 0);return ps-a[ps-top-1]; }int StackSize(ST* ps) //统计栈里面有多少个数据 {return ps-top; }bool StackEmpty(ST* ps) {assert(ps);return ps-top 0; }3.3、test.c #include stack.hvoid TestStack() {ST st;StackInit(st);StackPush(st, 1);StackPush(st, 2);StackPush(st, 3);StackPush(st, 4);StackPush(st, 5);StackPush(st, 6);//遍历栈元素while (!StackEmpty(st)){printf(%d , StackTop(st)); StackPop(st);}StackDestroy(st); }int main() {TestStack();return 0; }4、链栈的实现用链表实现栈 链栈的实现用链表实现栈 前面说过链栈的实现有两种方式 链表头做栈顶这样只需要单链表即可。链表尾做栈顶这样需要双向链表。 这里我们就以单链表的形式实现链表。 以单链表的形式实现链表链表的结构如下 这个样的链表有如下特性 链表的头指针就是栈顶。不需要头结点。基本不存在栈满的情况需要结点就立即申请即可。空栈相当于头指针指向NULL。插入和删除仅在栈顶处执行。 栈主要是用数组实现链栈稍微少一点所以这里直接放全代码不在一个接口一个接口的分析了。 以下是个人写的版本 4.1、stack.h #pragma once#include stdio.h #include stdlib.h #include assert.h #include stdbool.htypedef int SLDataType;typedef struct Stack {struct Stack* Next; SLDataType data; }ST;//销毁 void StackDestory(ST** pps);//插入数据 void StackPush(ST** pps, SLDataType x);//删除数据 void StackPop(ST** pps);//取栈顶元素 SLDataType StackTop(ST** pps);//统计栈里面有多少个数据 int StackSize(ST** pps);//判断栈是否为空 bool StackEmpty(ST** pps);4.2、stack.c #include stack.h//插入数据 void StackPush(ST** pps, SLDataType x) {//先扩容ST* newnode (ST*)malloc(sizeof(ST));if (newnode NULL){printf(malloc fail\n);exit(-1);}newnode-data x;newnode-Next *pps;*pps newnode; }//销毁 void StackDestory(ST** pps) {ST* cur *pps;while (cur){ST* next cur-Next; free(cur);cur next;}*pps NULL; }//删除栈顶 void StackPop(ST** pps) {assert(*pps ! NULL);ST* next (*pps)-Next;free(*pps);*pps next; }//取栈顶元素 SLDataType StackTop(ST** pps) {assert(*pps ! NULL);return (*pps)-data; }//统计栈里面有多少个数据 int StackSize(ST** pps) {assert(*pps ! NULL);int count 0;ST* cur *pps;while (cur){count;cur cur-Next;}return count; }//判断栈是否为空 bool StackEmpty(ST** pps) {assert(pps);return *pps NULL; }4.3、test.c #include stack.hint main() {ST* st NULL;StackPush(st, 1);StackPush(st, 2);StackPush(st, 3);StackPush(st, 4);StackPush(st, 5);StackPush(st, 7);ST** cur st;while (*cur){st *cur;printf(%d , StackTop(st));StackPop(st);}StackDestory(st);return 0; }5、栈与递归 递归的定义 若一个对象部分的包含它自己或用它自己给自己定义则称这个对象是递归的。若一个过程直接的或间接的调用自己则称这个过程是递归的过程。 以下三种情况常常用到递归方法 递归定义的数学函数。 阶乘函数。斐波那契数列。 具有递归特性的数据结构。 二叉树。广义表。 可递归求解的问题。 迷宫问题。Hanoi塔问题。 递归问题————使用分治法求解 __分治法__对于一个较为复杂的问题能够分解成几个相对简单的且解法相同或类似的子问题来求解。 使用分治法的三个条件 能将一个问题转变为一个新问题而新问题与原问题的解法相同或类同不同的仅是处理的对象且这些对象是变化有规律的。可以通过上述转化而使问题简化。必须有一个明确的递归出口或称为递归边界。 我们再来分析函数递归掉调用过程 调用前系统完成 将实参返回地址等传递给被调用函数。为被调用函数的局部变量分配存储区。将控制转移到被调用函数。 调用后系统完成 保存被调用函数的计算结果。释放被调用函数的数据区。依照被调用函数保存的返回地址将控制转移到调用函数。

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

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

相关文章

南宁网站 制作网站怎么上传模板

MYSQL  数据库管理工具 JAVA    编程语言 数据库驱动(JAVA和MYSQL对接方式) 到官网上下载驱动    加载驱动 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;public class S…

tp框架做响应式网站贵阳seo公司

一、Redis 的默认配置了解 Redis 的都知道,Redis 服务器状态有很多可配置的默认值。例如:数据库数量,最大可用内存,AOF 持久化相关配置和 RDB 持久化相关配置等等。我相信,关于 AOF 持久化和 RDB 持久化的配置大家都很…

网站服务器信息免费自动推广手机软件

目录 1 二叉树小结 1.1 模式一 1.2 模式二 2 236. 二叉树的最近公共祖先 3 124. 二叉树中的最大路径和 菜鸟做题(返校版),语言是 C 1 二叉树小结 菜鸟碎碎念 通过对二叉树的练习,我对 “递归” 有了一些肤浅的理解。…

网站建设简单赣州市人才网

最近有位老师让我做的,图片在下面,做了4个多小时,ui有的简陋,可以再美化一下,这个会更好看,毕竟我也不是专业前端,测试网站http://todolist.sshouxin.top/使用的是thinkphp5.1的框架&#xff0c…

南京建站公司模板深圳app开发公司大概价格

之前已经学习了osg加载场景的基本流程; Geometry类型是一个几何体对象;定义一个几何体对象geom1; Vec3Array是向量数组类型,定义该类型的变量v1; v1调用push_back方法放入4个向量,Vec3是三维向量; 并把v1设置为geom1的顶点数组; 法线也是用一个三维向量表示; 定义一…

同个网站可以做多个外链吗落实网站建设管理

文章目录 json简介在线解析json的工具json for morden c简介简单使用 json简介 json是一种轻量简单的数据结构,常用于网络数据传输,相较于xml他更加简介轻量,相较于protobuf它的学习成本更低几乎看个十几分钟就能上手,因为就是一…

成都企业模板建站wordpress 水煮鱼小程序

websocket: WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议)它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的Websocket是一个持久化的协议 websocket提供的api&a…

成都精品网站建设建设一个下载资料的网站

android的view中有setPadding,但是没有直接的setMargin方法。如果要在代码中设置该怎么做呢?可以通过设置view里面的LayoutParams设置,而这个LayoutParams是根据该view在不同的GroupView而不同的。布局文件如下:xmlns:tools"http://sche…

专业房地产网站建设h5网站显示的图标怎么做的

1、有一个二叉查找树,存储者字符A,B,C,D,E,F,G,H,下面哪个结果是后序树遍历结果 A. ADBCEGFH B. BCAGEHFD C. BCAEFDHG D. BDACEFHG 我的结题思路是将每个答案按照后序的遍历方法把二叉树存储数据的结构还原,看是否满足二叉树的性质。 二叉树的性…

百度网站优化公司海北公司网站建设

4 Redis持久化 Redis 是一个内存数据库,然而内存中的数据是不持久的,若主机宕机或 Redis 关机重启,则内存中的数据全部丢失。 当然,这是不允许的。Redis 具有持久化功能,其会按照设置以快照或操作日志的形式将数据持…

网站如何做流量赚钱吗深圳龙华区高风险区域

首先是关于SuMa的阅读,SuMa是一个完整的激光SLAM框架,核心在于“基于面元(surfel)”的过程,利用3d点云转换出来的深度图和法向量图来作为输入进行SLAM的过程,此外还改进了后端回环检测的过程,利用提出的面元的概念和使…

手机网站底部漂浮代码网页被禁止访问

🍎个人博客:个人主页 🏆个人专栏:JAVA ⛳️ 功不唐捐,玉汝于成 目录 正文 我的其他博客 正文 老生常谈的问题了,首先要说的是单例模式的线程安全意味着:某个类的实例在多线程环境 下只会被…

做网站找我要服务器密码大连甘井子区租房

一、HarmonyOS HarmonyOS全场景分布式智慧操作系统,将逐步覆盖“18N”全场景终端设备 1、“1”代表智能手机 2、“8”代表PC、平板、手表、智慧屏、AI音响、耳机、AR/VR眼镜、车机 3、“N”代表IoT生态产品 二、对于消费者: HarmonyOS用一个“统一…

网站title在哪里网页设计自己做网页素材

nginx概述 nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。 这里主要通过三个方面…

漯河商城网站建设广州装修公司口碑最好的是哪家

Base64编码 算法简述 定义 Base64内容传送编码是一种以任意8位字节序列组合的描述形式,这种形式不易被人直接识别。 Base64是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的ASCII字符序列,常用在需用通过文本协议(比…

做免费导航网站网站建设设计书任务书

2.2.1 目的 设计结构分析的目的是将设计识别和分解为系统、子系统、组件和零件,以便进行技术风险分析。其主要目标包括: 可视化分析范围结构化表示:方块图、边界图、数字模型、实体零件识别设计接口、交互作用和间隙促进顾客和供应商工程团队之间的协作(接口责任)为功能分…

西安便宜做网站苏州seo排名优化课程

319. 灯泡开关 初始时有 n 个灯泡处于关闭状态。第一轮,你将会打开所有灯泡。接下来的第二轮,你将会每两个灯泡关闭一个。 第三轮,你每三个灯泡就切换一个灯泡的开关(即,打开变关闭,关闭变打开&#xff0…

关于幼儿建设网站ppt模板定制软件开发软件

在WPF MVVM&#xff08;模型-视图-视图模型&#xff09;架构中&#xff0c;数据绑定是实现UI与后端逻辑分离的关键特性。为了使UI能够响应后端数据的变化&#xff0c;通常需要用到特定的集合类型。在WPF中&#xff0c;最常见的两种集合类型是List< T>和ObservableCollect…

兰州企业做网站湖北企业网站建设哪家好

一、本文介绍 本文给大家带来的改进机制是QualityFocalLoss,其是一种CLS分类损失函数,它的主要创新是将目标的定位质量(如边界框与真实对象的重叠度量,例如IoU得分)直接融合到分类损失中,形成一个联合表示。这种方法能够解决传统目标检测中分类与定位任务之间存在的不一…

网站上做烟花效果花生壳域名注册官网

光子晶体科技 ABeamStartUp 光子透明芯片 显示技术 光学材料 近日&#xff0c;ABeam 旗下德硕管理咨询&#xff08;深圳&#xff09;有限公司&#xff08;以下简称“ABeam-SZ”&#xff09;新创部门一行拜访了深圳光子晶体科技有限公司&#xff08;以下简称“光子晶体科技”…