网站建设项目进展情况网络加盟

web/2025/10/6 10:50:07/文章来源:
网站建设项目进展情况,网络加盟,如何制作网页快捷方式,开源系统 网站第三章总结 栈与队列都是特殊的限制型的线性表#xff0c;通常没有查询这个操作 栈的特点就是先进后出#xff0c;只可以在栈顶进行插入删除#xff0c;顺序栈定义指向栈顶与栈底的指针#xff08;方便判断栈的情况#xff09;也可以只定义一个栈顶指针top然后通过top-1来…第三章总结 栈与队列都是特殊的限制型的线性表通常没有查询这个操作 栈的特点就是先进后出只可以在栈顶进行插入删除顺序栈定义指向栈顶与栈底的指针方便判断栈的情况也可以只定义一个栈顶指针top然后通过top-1来判断栈顶是否有元素进而判断整个栈的情况应注意栈顶指针是最后一个元素的下一个入栈出栈要注意判断栈空栈满的情况。 链栈与链表的操作差不多初始化入栈出栈比较方便入栈不用判栈满但出栈应注意判断栈空的情况。 递归是在函数过程或者数据结构定义时直接或间接出现定义本身的应用应该理清内存的运行情况递归实际用于数学函数阶乘数据结构节点定义时用了自己的类型的指针问题解决汉诺塔这个我还是不太明白。递归是用一个工作栈来存储活动记录在函数F1内调用了函数F2时就会把函数F1的实参返回地址F2的局部变量打包放入栈中以此类推。递归结构比较清晰但是时间生成工作记录及出入栈与空间工作栈消耗大也要考录栈满的情况所以看情况可以用循环语句迭代来代替递归。 队的特点是先进先出队尾进队头出 顺序队列为了防止出现假溢出的情况而浪费了内存空间就用取模的方法实现循环队列每次对头尾指针的操作都应该取模这个我还需要时间去消化一下。 链队是只需要一个头节点一个头指针与一个尾指针因为是队尾进队头出出队时应该注意判断栈空的情况并释放队头的空间 作业括号匹配与银行排队 关于括号匹配的问题我是用了好几种方法 一顺序栈来实现用getchar()一个一个字符读入 #include iostream#include stdio.h#include stdlib.h using namespace std;typedef struct{ char data[100]; int top;}sqlist;int main(){ sqlist *l; l(sqlist *)malloc(sizeof(sqlist)); l-top0; char ch; while((chgetchar())!\n) { if(ch)l-top0l-data[l-top-1]()  //若为则判断栈顶是否为空栈顶不为空就指针下移判断是否匹配 l-top--;  //指针下移 else if(ch]l-top0l-data[l-top-1][) l-top--; else if(ch}l-top0l-data[l-top-1]{) l-top--; else if(ch(||ch{||ch[) l-data[l-top-1]ch;  //若是左符号就入栈 } if(l-top0)  //如果全部匹配 coutYes; else coutNo; return 0;} 在拼题啊上显示time limited …… 原因可能有 1.没有循环的终止条件2.程序调用超时3.算法优化问题 检查了一下发现有循环的条件因为在DEV上是可以运行的所以应该就是算法优化性的问题了于是去参考了一些网上的资源就发现了DTL这么一个神奇的东西   二用stl的栈用gets()读取 #includeiostream#includestack//用的是stl的栈 #includecstring#includecstdiousing namespace std;int col(char x)//判断同一类型的符号 { if(x(||x)) return 1; if(x[||x]) return 2; if(x{||x}) return 3;}int main(){ char ch[100]; stackchar sqlist;//定义了一个字符型的栈 while(gets(ch)!NULL) { int lenstrlen(ch);//取一行并计算长度 int flag0; for(int i0;ilen;i) { if(sqlist.empty()(ch[i])||ch[i]}||ch[i]])) {//如果栈 flag1; break; } else if(ch[i](||ch[i]{||ch[i][) sqlist.push(ch[i]); //如果字符为左边就入栈 else if(ch[i])||ch[i]}||ch[i]]) {//如果字符为右边类型的并且并且与栈顶的元素是同一种字符类型即配对就出栈 if(col(ch[i])col(sqlist.top())) sqlist.pop(); } else {//如果 flag1; break; } } if(flag1sqlist.empty()) coutyes; else coutno; } return 0;} 最后写出的程序可以在DEV上实现而在拼题啊上会显示GETS函数没有定义但明明已经加了他的头文件stdio.h后来百度才知道这个函数原本是C语言中的函数在拼题啊上是过不了的于是想着说可以把代码改成C语言的但是发现也不行因STL只适用与C所以唯一的解决方法就是换一个同样可以读取一行的函数 STLStandard Template Library标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来 STL的代码从广义上讲分为三类algorithm算法、container容器和iterator迭代器几乎所有的代码都采用了模板类和模版函数的方式这相比于传统的由函数和类 组成的库来说提供了更好的代码重用机会。在C标准中STL被组织为下面的13个头文件algorithm、deque、functional、iterator、vector、list、map、 memory、numeric、queue、set、stack和utility。  定义stackint s;入栈s.push(3);出栈s.pop();判空s.empty();取大小s.size(); #include iostream#include stack using namespace std; int main(){stackint s;s.push(1);s.push(5);s.push(7);cout s.size() endl;while(!s.empty()){cout s.top() ;s.pop();}return 0;} 输出 37 5 1 由于第一次的代码是用getchar函数写的一个字符地读取第二次的是用gets读取一行字符 关于getchar()当我们从键盘输入字符‘1’‘2’并按下回车后我们的输入被放入了输入缓冲区这个时候getchar()会从缓冲区中读取我们刚才的输入一次只读一个字符所以字符1就被拿出来了赋值给了c然后putchar()又将c放在了标准输出同时字符‘1’也被缓冲区释放了而字符‘2’仍然被留在了缓冲区。而这样是很不安全的有可能下次使用的时候我们的缓冲区会读到一些垃圾但是当程序结束的时候它会自动刷新。 chgetchar()!\ngetchar()会从输入缓冲区去读取内容也就是说我们把所有的内容都输入完成并且按下了Enter键后我们的输入才被送进去了输入缓冲区这个时候while循环才开始工作每一次getchar()从输入缓冲区读取一个字符然后如果不是换行符就输出。 gets() gets函数的头文件是stdio.h原型如下 char *gets(char *s); gets从stdin中读入一行内容到s指定的buffer中当遇到换行符或EOF时读取结束。读取成功时返回s地址失败时返回null。需要注意的是gets会将行末尾的’\n’字符或EOF替换成’\0’这样gets读取的内容中不包括’\n’字符。如果要获取读取字符串的长度可以调用strlen函数获得。 getline ()对于C语言如果使用C字符串的话就采用cin.getline()函数如果采用string型字符串的话就采用全局函数getline(cin,n); 注意这两个函数都不读入最后的换行符。 于是我又重新换了用cin.getline来写 #includeiostream#includestack//用的是stl的栈 #includecstring#includecstdiousing namespace std;int col(char x)//判断同一类型的符号 { if(x(||x)) return 1; if(x[||x]) return 2; if(x{||x}) return 3;}int main(){ char ch[100]; stackchar sqlist;//定义了一个字符型的栈 cin.getline(ch,100); int flag0; for(int i0;i100;i) { if(sqlist.empty()(ch[i])||ch[i]}||ch[i]])) {//如果栈空 flag1; break; } else if(ch[i](||ch[i]{||ch[i][) sqlist.push(ch[i]); //如果字符为左边就入栈 else if(ch[i])||ch[i]}||ch[i]]) {//如果字符为右边类型的并且并且与栈顶的元素是同一种字符类型即配对就出栈 if(col(ch[i])col(sqlist.top())) sqlist.pop(); } else {//如果 flag1; break; } } if(flag1sqlist.empty()) coutyes; else coutno; return 0;}   提交显示最长字符串的问题 stl加cin.getline这个用cin.getline应该是没问题的呀可是为什么还是不对呢 三 #includeiostreamusing namespace std; typedef char elemtype;typedef struct stacknode{ elemtype data; struct stacknode *next;}stacknode,*linkstack; //linkstack*错 void push(linkstack ,elemtype); //把E入栈 elemtype pop(linkstack ); //出栈并返回栈顶元素 bool empty(linkstack ); //判断栈是否为空返回true/false int main(){ string ch; linkstack sNULL; //初始化一个空栈 int i0,flag1; cinch; while(ch[i]!\0flag) //当还未出现未匹配并且未还没到最后一个元素 { if(ch[i](||ch[i]{||ch[i][) push(s,ch[i]); //如果为左符号就入栈 else if(ch[i])||ch[i]}||ch[i]]) {//如果栈空没有左符号或前面的已经全部匹配且当前元素为右符号 if(!empty(s)) { flag0; break; //跳出整个循环判断结束 } else if(!((ch[i])pop(s)()||(ch[i]}pop(s){)||(ch[i]]pop(s)[))) { flag0; break; } } i; //继续扫描下一个元素 } if(!empty(s)flag) //如果栈空全部配对且不存在不匹配的两种情况 coutyes; else coutno; return 0;} void push(linkstack s,elemtype e){ //把E入栈 stacknode *pnew stacknode; p-datae; p-nexts; //sNULL sp;}elemtype pop(linkstack s){ //出栈栈顶元素并用H返回 elemtype h; if(s!NULL) { //如果栈非空时 hs-data; stacknode *ps; ss-next; delete p; return h; }}bool empty(linkstack s){ //判断栈空空为false if(sNULL) return false; else return true;} 这种写法我觉得是没问题的但是不论是哪种输入都是显示no不知道为什么 我在问了老师之后我重新改了一下把如果是右符号再分情况判断栈空与非空的情况 #includeiostreamusing namespace std; typedef char elemtype;typedef struct stacknode{ elemtype data; struct stacknode *next;}stacknode,*linkstack; //linkstack*错 void push(linkstack ,elemtype); //把E入栈 elemtype pop(linkstack ); //出栈并返回栈顶元素 bool empty(linkstack ); //判断栈是否为空返回true/false int main(){ string ch; linkstack sNULL; //初始化一个空栈 int i0,flag1; cinch; while(ch[i]!\0flag) //当还未出现未匹配并且未还没到最后一个元素 { if(ch[i](||ch[i]{||ch[i][) push(s,ch[i]); //如果为左符号就入栈 else if(ch[i])||ch[i]}||ch[i]]) {//如果栈空没有左符号或前面的已经全部匹配且当前元素为右符号 if(!empty(s)) { flag0; break; //跳出整个循环判断结束 } else if(!((ch[i])pop(s)()||(ch[i]}pop(s){)||(ch[i]]pop(s)[))) { flag0; break; } } i; //继续扫描下一个元素 } if(!empty(s)flag) //如果栈空全部配对且不存在不匹配的两种情况 coutyes; else coutno; return 0;} void push(linkstack s,elemtype e){ //把E入栈 stacknode *pnew stacknode; p-datae; p-nexts; //sNULL sp;}elemtype pop(linkstack s){ //出栈栈顶元素并用H返回 elemtype h; if(s!NULL) { //如果栈非空时 hs-data; stacknode *ps; ss-next; delete p; return h; }}bool empty(linkstack s){ //判断栈空空为false if(sNULL) return false; else return true;} 提交显示还是最长字符串的问题   自定义栈函数加string cin遇到空格tab键就会结束输入并且会忽略所以遇到空格就已经停止输入了所以就会显示出错 getline(cin,ch)就可以了空格ta键会像普通字符一样赋值给ch遇到换行符结束并且会丢弃换行符 getline(cin, str, ~)getline新增加了一个参数是字符类型的表示终止符遇到该终止符结束输入并且不会丢弃换行符getline函数位于命名空间std中 四用了书本上的方法用switch #includeiostreamusing namespace std; typedef char elemtype;typedef struct stacknode{ elemtype data; struct stacknode *next;}stacknode,*linkstack; //linkstack*错 void push(linkstack ,elemtype); //把E入栈 void pop(linkstack ,elemtype ); //出栈并返回栈顶元素 elemtype gettop(linkstack); //得栈顶元素用来比较 int main(){ elemtype ch[100]; elemtype e; linkstack sNULL; //初始化一个空栈 int flag1; cin.getline(ch,100); for(int i0;i100;i) { switch(ch[i]) { //如果为左符号就入栈并跳出switch进行下一次的扫描 case (: case [: case {: push(s,ch[i]); break; case ): //如果为就判断栈是否为空若不为空就得栈顶元素出来比较 if(s!NULLgettop(s)() pop(s,e); //若栈非空且匹配则出栈 else flag0; //否则就跳出本次的switch break; case ]: //如果为】就判断栈是否为空若不为空就得栈顶元素出来比较 if(s!NULLgettop(s)[) pop(s,e); else flag0; break; case }: //如果为}就判断栈是否为空若不为空就得栈顶元素出来比较 if(s!NULLgettop(s){) pop(s,e); else flag0; break; } } if(sNULLflag) //如果栈空且flag不变则匹配 coutYes; else coutNo; return 0;} void push(linkstack s,elemtype e){ //把E入栈 stacknode *pnew stacknode; p-datae; p-nexts; //sNULL sp;}void pop(linkstack s,elemtype e){ //出栈栈顶元素并用H返回 if(s!NULL) { //如果栈非空时 es-data; stacknode *ps; ss-next; delete p; }}elemtype gettop(linkstack s){ //得栈顶元素 if(s!NULL) return s-data;} 提交显示答案错误一直在想为什么最后才发现是因为输出yes no是不用大写的真的是头疼,最后还是提交成功了 括号问题解决了虽让用了两个星期 说说银行排队问题这个反而比较简单些 #include iostreamusing namespace std;int main(){ int a[1100],b[1100],n,num,j0,k0,la,lb; cinn; for(int i0;in;i) {//输入两个数组的元素奇数在A数组偶数在B数组 cinnum; if(num%2!0) { a[j]num; } if(num%20) { b[k]num; } }//最后的J,K为两个数组的元素个数不是最后一个的下标哦 la0; lb0; while(j0k0)//两个数组都非空时 { for(int i0;i2;i) {//输出A数组的两个 couta[la]; if(n!1)//如果当前的数不是最后一个数就输出空格 { cout ; } j--; n--;//A数组及总的元素个数都减一 } for(int i0;i1;i) {//输出一个B数组的元素 coutb[lb]; if(n!1)//如果当前的元素不是最后一个就输出空格 { cout ; } k--; n--;//B数组及总的元素个数都减一 } } while(j0)//输出A数组剩下的元素 { couta[la];//la一直用来记录A数组的输出情况 if(j!1) { cout ;//如果当前的元素不是A数组的最后一个元素就接着输出空格 } j--;//A数组个数减一 } while(k0) {//同A数组的操作一致 coutb[lb]; if(k!1) { cout ; } k--; } return 0;} 这个也是遇到了一点问题后来检查才发现是因为当有个数组到头时应该把另一个数组输出时写错成了if而不是while转载于:https://www.cnblogs.com/jingjing1234/p/10614613.html

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

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

相关文章

鞍山网站制作人才招聘专业建站源码

MATLAB目前只支持Nvidia的显卡。如果你的显卡是AMD的或者是Intel的,就得考虑另寻它路了。 MATLAB可谓工程计算中的神器,一方面它自带丰富的函数库,另一方面它所有的数据都是内建的矩阵类型,最后画图也方便,因此解决一…

如何建立免费微网站wordpress 按时间倒序

在Linux系统中,环境变量LANG、LC_MESSAGES和LC_ALL用于控制系统和应用程序的语言和区域设置(locale)。它们的具体作用如下: LANG: LANG是最基本的环境变量,用于指定系统的默认语言和区域设置。它是一个全局…

网站建设 互成网络开发公司交的农民工工资保证金可以退还吗

前言 前面我们讲了C语言的基础知识,也了解了一些数据结构,并且讲了有关C的一些知识,也相信大家都掌握的不错,今天博主将会新开一个Linux专题,带领大家继续学习有关Linux的内容。今天第一篇文章博主首先带领大家了解一下…

龙岗英文网站建设广州做企业网站找哪家公司好

冷链,即冷冻冷藏供应链的简称,泛指冷藏冷冻类食品从原材料供应物流、食品工厂内生产物流、贮藏运输物流至贩卖销售物流等,各个环节中始终处于规定的低温环境下,以保证食品质量,减少食品损耗的一项系统工程 。随着科学技…

简述网站制作的步骤做单位网站的公司吗

转载自 Java IO: 文件 译文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) 在Java应用程序中,文件是一种常用的数据源或者存储数据的媒介。所以这一小节将会对Java中文件的使用做一个简短的概述。这篇文章不会对每一个技术细节都做出解释&#xf…

站长之家工具高清容县住房和城乡建设局网站

一、题目 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后&#xff0c…

电子商务网站建设推广分析山西物价局建设工程检测网站首页

华子目录 前言认识LVMLVM基本概念LVM整体流程LVM管理命令pvs,vgs,lvs命令pvs基本用法选项示例 vgs基本用法选项示例 lvs基本用法 pvcreate,vgcreate,lvcreate命令pvcreate示例 vgcreate基本用法示例选项 lvcreate基本用法示例 pvr…

网站关键词优化培训新乡商城网站建设

redis没有实现访问控制这个功能,但是它提供了一个轻量级的认证方式,可以编辑redis.conf配置来启用认证。 1、初始化Redis密码: 在配置文件中有个参数: requirepass 这个就是配置redis访问密码的参数; 比如 requirep…

php企业网站后台管理系统网络营销论文怎么写

最基本最常用的函数,掌握了可以解决大部分问题。 (笔记模板由python脚本于2024年06月11日 19:05:56创建,本篇笔记适合熟悉excel的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣…

app开发与网站建设泸县做网站公司

降压转换器已存在了一个世纪,是当今电子电路中不可或缺的一部分。本文将讲述一个原始分立式器件如何演变成可以处理数百瓦功率的微型高集成器件。 降压转换器是将输入电压转换为较低的输出电压,基本原理如图 1所示。最初,开关 SW1 关断&…

宁波网站建设 泊浮科技凡科网免费做网站

随机生成5道10以内的加法测试题,用户在10秒内使用键盘输入答案。完成全部5道答题之后,计算机生成答题记录报告,并对答题情况进行分析,显示“答对了”,或“答错了”、并显示正确答案。如果未能按时完成,则显…

山东省住房和城乡建设厅网站6网络推广长沙网络推广

通过使用智能合约实现来支持任何曲线 BLS12–381 是一种较新的配对友好型椭圆曲线。 与常用的 BN-256 曲线相比,BLS12-381 的安全性明显更高,并且安全目标是 128 位。 所有其他区块链,例如 Zcash 和以太坊,都必须通过硬分叉才能升…

境外网站icp备案网站设计专业公司

打造高端老人手机——幸福手机 江苏智联天地科技有限公司历经2年,手机研发投入超过4000万,打造中国第一品牌的高端老人手机,手机将于2014年12月正式对外发布,是国内第一款高端老人手机——幸福手机(ThimFone&#xff0…

网站搭建是什么专业wordpress注册修改

ubuntu python 2.7 python test.py *.py permission denied chmod x *.py 转载于:https://www.cnblogs.com/gisalameda/p/11086624.html

网站建设布局利于优化高端网站建设文案

文章目录 SQL Server主要特点 常见数据库操作假设tmall_scapler_item_pk是一个主键约束临时表表的连接 SQL Server SQL Server 是由微软(Microsoft)公司开发的一个关系数据库管理系统(RDBMS)。它允许企业或组织存储、检索、修改和…

南宁网站建设服务郑州做网站托管

1. TFO 为了改善web应用相应时延,google发布了通过修改TCP协议利用三次握手时进行数据交换的TFO(TCP fast open,RFC 7413)。 TFO允许在TCP握手期间发送和接收初始SYN分组中的数据。如果客户端和服务器都支持TFO功能,则可以减少建立到同一服…

更新网站要怎么做呢苗木公司网站模板

以前我们使用RSA加密主要是使用RSACryptoServiceProvider这个类,在.NET Core中也有这个类,但是这个类并不支持跨平台,所以如果你是用这个类来进行加/解密在windows上运行是完全没有错误的,但是只要你一放到Linux下就会出现异常。查…

课程网站建设特色m 的手机网站怎么做

9月27日,世界排名第一ERP厂商SAP在官网宣布,推出生成式AI助手Joule,并将其集成在采购、供应链、销售、人力资源、营销、数据分析等产品矩阵中,帮助客户实现降本增效。 据悉,Joule是一款功能类似ChatGPT的产品&#xf…

微信 公众号 微网站开发汕头网站推广教程

一. RemoteScheduler远程控制 1. 背景: 在A服务器上部署了一个Scheduler,我们想在B服务器上控制这个Scheduler。 2. 猜想: A服务器上的Scheduler需要有地址、需要有端口、需要有名称(实际上也是如此)。 3. 需求: 一个控制台程序…

大连企业网站建设北京天仪建设工程质量检测所网站6

Socket是什么呢? ① Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。 ② Socket是连接运行在网络上的两个程序间的双向通信的端点。 ③ 网络通讯其实指…