地域购物网站wordpress 回复显示不出来

news/2025/9/24 9:17:12/文章来源:
地域购物网站,wordpress 回复显示不出来,成都定制网站建设服,商业空间设计师岗位职责目录 1. 有效的括号 思路#xff1a; 2.用队列实现栈 思路#xff1a; 3.用栈实现队列 思路#xff1a; 4.设计循环队列 思路#xff1a; 1. 有效的括号 20. 有效的括号 - 力扣#xff08;LeetCode#xff09; 给定一个只包括 (#xff0c;)#xff0c;{… 目录 1. 有效的括号 思路 2.用队列实现栈  思路 3.用栈实现队列 思路 4.设计循环队列 思路 1. 有效的括号 20. 有效的括号 - 力扣LeetCode 给定一个只包括 (){}[] 的字符串 s 判断字符串是否有效。 有效字符串需满足 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。 思路 左右括号匹配有两个需要考虑的点 1.括号顺序问题 2.括号数量问题 1.括号顺序问题括号都有对应的左右边出现这样的 ({)} 就是错误的只有相应的左括号会有对应的右括号在旁边 栈先进后出一组括号先比较的是最后输入的左括号所以栈满足此功能 队列先进先出最先输入的左括号应该是与最后输入的右括号比较所以队列不满足此功能 2.括号顺序问题 即使右括号都满足了左括号会有残留问题比如右括号多些而此时空间已经为空 我们构建一个栈的基本功能 【数据结构】——栈|队列基本功能-CSDN博客 // 支持动态增长的栈 typedef char STDataType; typedef struct Stack {STDataType* arr; int top; // 栈顶int capacity; // 容量 }Stack;// 初始化栈 void StackInit(Stack* ps) {assert(ps);assert(ps);ps-arr NULL;ps-capacity 0;ps-top -1; //表示栈顶元素 }// 入栈 void StackPush(Stack* ps, STDataType data) {//检查容量if (ps-top 1 ps-capacity) //top表示的是栈顶元素先top,再插入的所以检查1位置是否可用{int newcapacity ps-capacity 0 ? 4 : ps-capacity * 2;STDataType* newnode (STDataType*)realloc(ps-arr,sizeof(STDataType) * newcapacity);assert(newnode); //七匹狼式检查是否开辟成功ps-arr newnode;ps-capacity newcapacity;}ps-top;ps-arr[ps-top] data; }// 出栈 void StackPop(Stack* ps) {assert(ps);assert(ps-top 0);ps-top--; }// 获取栈顶元素 STDataType StackTop(Stack* ps) {assert(ps);assert(ps-top 0);return ps-arr[ps-top]; }// 检测栈是否为空如果为空返回非零结果如果不为空返回0 bool StackEmpty(Stack* ps) {assert(ps);if (ps-top 0) //为空{return true;}else{return false;} }// 销毁栈 void StackDestroy(Stack* ps) {assert(ps);ps-capacity 0;ps-top -1;free(ps-arr);ps-arr NULL; }当括号字符串 所有左括号都存储进栈中当遇到右括号就开始逐个和栈顶括号比较  这里在于比较时因为比较后还需要继续比较所以采取找到不符合的条件跳出循环 在字符串循环结束后要检查是否栈为空 bool isValid(char* s) {Stack ps;StackInit(ps);while(*s){//左括号入栈if(*s ( || *s { || *s [){StackPush(ps,*s);}//右括号与栈顶比较else{//检查是否数量匹配,检查栈是否还有元素,为空返回非0if(StackEmpty(ps)){StackDestroy(ps);return false;}//左右括号比较,不相等返回faslechar tmp StackTop(ps);StackPop(ps); //移除栈顶元素if((tmp ! ( *s ))||( tmp ! { *s })|| (tmp ! [ *s ])){StackDestroy(ps);return false;}}s;}bool tmp StackEmpty(ps);StackDestroy(ps);return tmp; } 2.用队列实现栈  225. 用队列实现栈 - 力扣LeetCode 请你仅使用两个队列实现一个后入先出LIFO的栈并支持普通栈的全部四种操作push、top、pop 和 empty。 实现 MyStack 类 void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的返回 true 否则返回 false 。 思路 栈是先进后出的结构而队列是先进先出的 两个队列数据存储到队列1中后按照先进先出的结构将size(元数个数)-1移动到队列2中再输出队列1的话就实现了栈的结构先进后出 可以总结为如果要输入元素就输入到空队列中 //将元素X压入栈顶 void myStackPush(MyStack* obj, int x) {if(!QueueEmpty(obj-q1)) //为空返回非0取反{QueuePush(obj-q1,x);}else{QueuePush(obj-q2,x);} } 如何找到栈顶元素呢我们可以将不为空的队列中 size(有效元素个数)-1个 数据移动到空队列中再输出原不为空的队列 我们采取假设法找到不为空的队列假设某一队列为empty另外一个队列为noempty然后if条件判断假设  //移除并返回栈顶元素 int myStackPop(MyStack* obj) {//将size-1个元素移动到 另一个空队列中//假设q1队列为空q2不为空Queue* empty obj-q1;Queue* noempty obj-q2;//验证假设if(!QueueEmpty(obj-q1)){empty obj-q2;noempty obj-q1;}//将size-1个元素 移动到空队列中while(QueueSize(noempty)1){QueuePush(empty,QueueFront(noempty));QueuePop(noempty);}int top QueueFront(noempty); //此刻该队列仅有需要的数据QueuePop(noempty);return top;} 这两个是这道题较为麻烦的函数另外的函数需求因为较为简单我就直接码上讲解 且这段代码是这道题一半的代码另外一般就是队列的基本功能实现代码可以去【数据结构】——栈|队列基本功能-CSDN博客获取完整的代码复制过来即可 注这里释放内存是由里往外因为结构定义了多重  MyStack* myStackCreate() {MyStack* pst (MyStack*)malloc(sizeof(MyStack));QueueInit(pst-q1);QueueInit(pst-q2);return pst; }//将元素X压入栈顶 void myStackPush(MyStack* obj, int x) {if(!QueueEmpty(obj-q1)) //为空返回非0取反{QueuePush(obj-q1,x);}else{QueuePush(obj-q2,x);} } //移除并返回栈顶元素 int myStackPop(MyStack* obj) {//将size-1个元素移动到 另一个空队列中//假设q1队列为空q2不为空Queue* empty obj-q1;Queue* noempty obj-q2;//验证假设if(!QueueEmpty(obj-q1)){empty obj-q2;noempty obj-q1;}while(QueueSize(noempty)1){QueuePush(empty,QueueFront(noempty));QueuePop(noempty);}int top QueueFront(noempty);QueuePop(noempty);return top;} //返回栈顶元素 int myStackTop(MyStack* obj) {if(!QueueEmpty(obj-q1)) //为空返回非0取反{return QueueBack(obj-q1);}else{return QueueBack(obj-q2);} }//如果栈是空返回true非空 返回fasle bool myStackEmpty(MyStack* obj) {if(QueueEmpty(obj-q1) QueueEmpty(obj-q2)) //表示为空{return true;}elsereturn false; }void myStackFree(MyStack* obj) { //注意释放顺序QueueDestroy(obj-q1);QueueDestroy(obj-q2);free(obj); }3.用栈实现队列 232. 用栈实现队列 - 力扣LeetCode 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作push、pop、peek、empty 实现 MyQueue 类 void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空返回 true 否则返回 false 思路 这道题和题2相似要实现1先出去就是先把入栈的元素全部移动到出栈中就实现了队列的结构 与之不同的是这边需要把全部的数据移动到另一个栈 可以定义两个栈为 pushst栈用来数据存放的栈 popst栈 用来输出数据的栈 1.需要获得栈内数据时先检查popst栈是否为空如果不为空返回该栈数据即刻 2.如果为空先将pushst栈数据导入到popst栈内在进行返回popst栈数据  int myQueuePeek(MyQueue* obj) {if(!STEmpty(obj-popst)) //popst栈有数据 直接返回栈顶元素{return STTop(obj-popst);}else{//先将数据导入到popst栈while(!STEmpty(obj-pushst)){STPush(obj-popst,STTop(obj-pushst));STPop(obj-pushst);}//返回栈顶元素return STTop(obj-popst);} } 注这里和题2一样注意释放顺序 因为其他功能较为思路明了解析过程会在代码中解释  栈函数接口实现功能代码在【数据结构】——栈|队列基本功能-CSDN博客 MyQueue* myQueueCreate() {MyQueue* obj (MyQueue*)malloc(sizeof(MyQueue));STInit(obj-pushst);STInit(obj-popst);return obj; }void myQueuePush(MyQueue* obj, int x) {//数据进到pushst栈STPush(obj-pushst,x); }int myQueuePop(MyQueue* obj) {int front myQueuePeek(obj);STPop(obj-popst);return front; }int myQueuePeek(MyQueue* obj) {if(!STEmpty(obj-popst)) //popst栈有数据 直接返回栈顶元素{return STTop(obj-popst);}else{//先将数据导入到popst栈while(!STEmpty(obj-pushst)){STPush(obj-popst,STTop(obj-pushst));STPop(obj-pushst);}//返回栈顶元素return STTop(obj-popst);} }bool myQueueEmpty(MyQueue* obj) {if(STEmpty(obj-pushst) STEmpty(obj-popst)){return true;}elsereturn false; }void myQueueFree(MyQueue* obj) {STDestrory(obj-pushst);STDestrory(obj-popst);free(obj); } 4.设计循环队列 622. 设计循环队列 - 力扣LeetCode 设计你的循环队列实现。 循环队列是一种线性数据结构其操作表现基于 FIFO先进先出原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 思路 这里有两种数据结构可以选择数组和链表 链表对后续的操作比较方便但是不好控制而且构建的时候也极为麻烦 如果用数组 需要考虑的是如何规避为满和为空的判断 采用数组的话我们定义frontback来进行判断循环点 这里的问题就是如何规避 为满和为空的问题  解决1.可以定义一个size在front back的基础上size 0 就是空                                                                                       size 0就是满         2. 可以多开辟一块空间动态空间 多开辟一块空间这块空间是动态移动的但是不存储数据 当front back时就是空 当 back1 front 就是满 这里因为数组 如果在边界点的话 会导致越界 所以采取取模来规范范围也达到了循环的条件 这里需要注意的就是获取最后一个结点 因为back是指向最后一个数据的下一个位置如果back在边界 -1 有可能越界 需要特殊处理规范这块 取模的操作如果该数大于本身就不会有影响  这里删除和增加一个数据都有可能引起越界所以在对back front操作后都要规范范围 取模实际空间大小  typedef struct {int* parr; //动态开辟int front; //头结点int back; //指向尾结点的下一个int size; //实际开辟的空间 } MyCircularQueue;MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj (MyCircularQueue*)malloc(sizeof(MyCircularQueue));obj-parr (int*)malloc(sizeof(int)*(k1)); //多开辟一块空间obj-front 0;obj-back 0;obj-size k1;return obj; }bool myCircularQueueIsEmpty(MyCircularQueue* obj) {return obj-front obj-back; }bool myCircularQueueIsFull(MyCircularQueue* obj) {return (obj-back1) % obj-size obj-front; //满了返回真 }bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {//先判断是否满了if(myCircularQueueIsFull(obj)) //满了返回真return false;obj-parr[obj-back] value;obj-back;obj-back % obj-size;return true; }bool myCircularQueueDeQueue(MyCircularQueue* obj) {//判断是否为空if(myCircularQueueIsEmpty(obj))return false;obj-front;obj-front % obj-size;return true; }int myCircularQueueFront(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;return obj-parr[obj-front]; }int myCircularQueueRear(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;return obj-parr[(obj-back-1 obj-size) % obj-size]; }void myCircularQueueFree(MyCircularQueue* obj) {free(obj-parr);free(obj); }

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

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

相关文章

运城做网站电话网页设计实验报告分析

【物联网阿里云平台开发项目实战|附课件资料】智能硬件开发-数据上云,零基础入门 4G模块连接阿里云教程 MQTT通信协议(mosquitto)在Linux上的环境构建与测试 MQTT通信协议(mosquitto)发布订阅例子C语言实现 MQTT客户端软件(MQTT.fx)的使用详解 各类MQTT代理服务器特…

企业网站建设公司网络服务上海知名的网站建设

这是今天和校招新同事交流时的总结,希望校招新同事能够回顾,也能够写出自己的总结。 一、什么是代码高手?你怎么证明自己是代码高手? 知道许多代码技巧、JS炫彩技巧的人大有人在。你知道多少个.net函数,这一点都没有意…

国外家居设计网站客户管理系统免费

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于Spring,SpringMVC,MyBatis的高校大…

网站分类查询黄石seo

1. 涉及技术:Winservice: 用system身份后台跑; Quartz:定时任务; SVN 2. 思路:Quartz定时调用cmd 程序,执行SVN update 命令,整个程序寄宿在Winservice3. 步骤:1)service 用local system账户安…

网站开发 创造收益网页升级访问紧急通通知

第一步: File -> Reverse Engineer -> Database 第二步 : Using Script Files -> Add Files

应用最广网站建设技术彩妆网站模板

1.4 数据存储 1、Redis 的数据过期策略是什么? Redis的数据过期策略包括两种机制:被动删除和主动删除。 被动删除: 当某个键被访问时,如果发现这个键已经过期,Redis会立即删除这个键。这意味着如果一个过期的键从未被访问,它就不会被自动删除。这是一种惰性删除策略。主…

三门峡建设银行网站邢台网站建设讯息

题目大概意思是剔除nums数组中出现的所有val值。可以用快慢双指针法来做。 快的指针在前面遍历找值不为val的元素的下标,慢的负责接收值不为val的元素,并及时更新数组。 class Solution {public int removeElement(int[] nums, int val) {//快慢指针法in…

在线教育软件开发的全流程解析与优化方案

随着信息技术的不断进步,在线教育逐渐成为教育行业的重要发展方向。山东布谷鸟网络科技有限公司作为的软件开发企业,深耕教育行业多年,专注于K12教培教育系统的研发与优化,致力于为教育机构提供高质量、稳定可靠的…

css-伪元素清除浮动

<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">&…

建设领域信用系统网站邯郸电商设计

1.直接new出来的对象添加事务不起作用&#xff0c;因为只有spring定义的bean才接受事务。 2.由于mysql的引擎用Myisam不支持事务&#xff0c;所以如果使用mysql的myisam引擎的话&#xff0c;事务不起作用。 3.如果Transaction注解到非public方法上&#xff0c;事务不起作用&…

网站规划的要素不包括西华县建设局网站

1 什么是迭代器&#xff0c;生成器&#xff0c;装饰器 2 django的信号用过吗&#xff1f;如何用&#xff0c;干过什么 3 什么是深拷贝&#xff0c;什么是浅拷贝&#xff0c;如何使用 3.1 浅拷贝 3.2 深拷贝 3.3 扩展(slice操作符和list构造函数) 1 什么是迭代器&#xff0c;生成…

天津武清做网站网站空间如何申请

一、SNAT ①SNAT 应用环境: 局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由) ②SNAT原理: 源地址转换&#xff0c;根据指定条件修改数据包的源IP地址&#xff0c;通常被叫做源映射 数据包从内网发送到公网时&#xff0c;SNAT会把数据包的源IP由…

桂电做网站的毕设容易过嘛wordpress 密码重置

在php中&#xff0c;SQL查询数据库得到的是多行多列的数据&#xff0c;如何将查询结果转为二维数组&#xff0c;我的目的是把多行查询结果按行输出&#xff0c;有没有什么方法&#xff0c;求详细代码示例查询结果示例&#xff1a;reserv_idnametyper...在php中&#xff0c;SQL查…

网站建设怎样宣传比较好wordpress 移除 新闻

1. 关于函数 函数是基于功能或 逻辑进行封装的可复用的代码结构。将一段功能复杂、很长的一段代码封装成多个代码片段(即函数)&#xff0c;有助于提高代码可读性和可维护性。在 Go 语言中&#xff0c;函数可以分为两种&#xff1a;带有名字的普通函数没有名字的匿名函数由于 Go…

成都 php 网站个人网页设计与制作教程

数字经济专家高泽龙受聘担任工信部元宇宙标准化委员会委员&#xff0c;出席工作组成立大会暨第一次全体委员会议。 第一届元宇宙国标、团标以及标委会工作组会议顺利召开&#xff01; 同时&#xff0c;正式成为工信部中国人工智能产业发展联盟科技伦理工作组成员&#xff01;

公司建设网站服务器必要条件动画视频制作软件

Linux命令之用户管理 常用基础命令修改root密码切换用户身份改变当前目录查看命令的用法查看命令之ls 用户管理用户的创建adduser创建useradd创建两种方式的区别 用户删除用户密码重置查看当前所有用户 在介绍Linux用户管理相关的命令之前&#xff0c;我们先介绍一些Linux的一些…

网站被挂黑链对网站有啥影响建筑网站开发

/* 主要是画图&#xff0c;画很多图&#xff0c;找规律&#xff0c;找到规律以后&#xff0c;发现算是简单题思路的关键是&#xff1a;每次切割都与前(i-1)刀有交点的情况下&#xff0c;得到的块数是最大的 */ #include <iostream> typedef long long ll; using nam…

网站的排版包括什么意思天猫网站怎么做

Android IPC简介 IPC是Inter-Process Communication的缩写&#xff0c;含义就是进程间通信或者跨进程通信&#xff0c;是指两个进程之间进行数据交换的过程。那么什么是进程&#xff0c;什么是线程&#xff0c;进程和线程是两个截然不同的概念。在操作系统中&#xff0c;线程是…

曲靖网站微信建设苏州网页制作与网站建设地址

jieba词性对照表: - a 形容词 - ad 副形词 - ag 形容词性语素 - an 名形词 - b 区别词 - c 连词 - d 副词 - df - dg 副语素 - e 叹词 - f 方位词 - g 语素 - h 前接成分 - i 成语 - j 简称略称 - k 后接成分 - l 习用语 …