当前位置: 首页 > news >正文

海南省建设与执业资格注册中心网站siteservercms做的网站在后台进行修改教程

海南省建设与执业资格注册中心网站,siteservercms做的网站在后台进行修改教程,wordpress写文章怎么添加图片,网站成本思路 思路#xff1a;用两个队列实现栈后进先出的特性 #xff0c;两个队列为空时#xff0c;先将数据都导向其中一个队列。 当要模拟出栈时#xff0c;将前面的元素都导入另一个空队列#xff0c;再将最后一个元素移出队列 实现 实现#xff1a; 因为C语言没有库可以… 思路  思路用两个队列实现栈后进先出的特性 两个队列为空时先将数据都导向其中一个队列。 当要模拟出栈时将前面的元素都导入另一个空队列再将最后一个元素移出队列  实现  实现 因为C语言没有库可以现成使用所以我们将写好的队列导入 先创建MyStack结构体包含两个队列结构体。再malloc动态申请MyStack结构体的空间最后将两个队列传入初始化函数进行初始化记得要加上取地址符号 压栈过程我们就先判断队列q1是否为空如果不为空则往q1中导入数据因为不为空证明前面已经有数据放进去了如果为空则证明要么两个队列都是空要么一开始向q2导入了数据这时我们就将数据导入队列q2中。 一句话总结谁有数据就放谁都无数据放q2一开始随便放哪个都行这里我们选择q2  出栈过程就分为两个部分。第一个部分是创建空队列和非空队列指针因为我们不知道此时q1和q2哪个是空哪个非空后面加上判断如果初始赋值错误则翻转过来。 第二个部分就是一开始的核心思路利用循环将前面的元素都导入另一个空队列再获取最后一个元素注意每次导入一个元素就要进行出队操作pop 获取栈顶元素就是出栈过程的删减版判断完空与非空队列直接取出非空队列队尾的元素即可 判断栈是否为空只要当两个队列q1和q2全为空时栈才为空返回true否则返回false 最后释放栈空间可能有人只写了最后一句也给过了但是其实这是不对的。正确做法是先将两个队列都销毁销毁链表再将MyStack空间给释放掉这样才不会造成内存泄漏 完整代码附上 typedef int QDataType; typedef struct QueueNode {QDataType data;struct QueueNode* next; }QNode;typedef struct Queue {QNode* phead;QNode* ptail;int size; }Queue;//初始化 void QueueInit(Queue* pq); //销毁 void QueueDestroy(Queue* pq); //入队 void QueuePush(Queue* pq, QDataType x); //出队 void QueuePop(Queue* pq); //获取队头元素 QDataType QueueFront(Queue* pq); //获取队尾元素 QDataType QueueBack(Queue* pq); //检测队列中有效元素个数 int QueueSize(Queue* pq); //检测队列是否为空 bool QueueEmpty(Queue* pq);void QueueInit(Queue* pq) {assert(pq);pq-phead NULL;pq-ptail NULL;pq-size 0; }void QueueDestroy(Queue* pq) {assert(pq);QNode* cur pq-phead;while (cur){QNode* next cur-next;free(cur);cur next;}pq-phead pq-ptail NULL;pq-size 0; }void QueuePush(Queue* pq, QDataType x) {assert(pq);QNode* newnode (QNode*)malloc(sizeof(QNode));if (newnode NULL){perror(malloc fail);return;}newnode-data x;newnode-next NULL;if (pq-ptail NULL){assert(pq-phead NULL);pq-phead pq-ptail newnode;}else{pq-ptail-next newnode;pq-ptail newnode;}pq-size; }void QueuePop(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));if (pq-phead-next NULL){free(pq-phead);pq-phead pq-ptail NULL;}else{QNode* next pq-phead-next;free(pq-phead);pq-phead next;}pq-size--; }QDataType QueueFront(Queue* pq) {assert(pq);return pq-phead-data; }QDataType QueueBack(Queue* pq) {assert(pq);return pq-ptail-data; }int QueueSize(Queue* pq) {assert(pq);return pq-size; }bool QueueEmpty(Queue* pq) {assert(pq);return pq-size 0; }typedef struct {Queue q1;Queue q2; } MyStack;MyStack* myStackCreate() {MyStack* obj (MyStack*)malloc(sizeof(MyStack));if (obj NULL){perror(malloc fail);return NULL;}QueueInit(obj-q1);QueueInit(obj-q2);return obj; }void myStackPush(MyStack* obj, int x) {if (!QueueEmpty(obj-q1)){QueuePush(obj-q1, x);}else{QueuePush(obj-q2, x);} }int myStackPop(MyStack* obj) {Queue* pEmptyQ obj-q1;Queue* pNonEmptyQ obj-q2;if (!QueueEmpty(obj-q1)){pEmptyQ obj-q2;pNonEmptyQ obj-q1;}while (QueueSize(pNonEmptyQ) 1){QueuePush(pEmptyQ, QueueFront(pNonEmptyQ));QueuePop(pNonEmptyQ);}int top QueueFront(pNonEmptyQ);QueuePop(pNonEmptyQ);return top; }int myStackTop(MyStack* obj) {Queue* pEmptyQ obj-q1;Queue* pNonEmptyQ obj-q2;if (!QueueEmpty(obj-q1)){pEmptyQ obj-q2;pNonEmptyQ obj-q1;}int top QueueBack(pNonEmptyQ);return top; }bool myStackEmpty(MyStack* obj) {return QueueEmpty(obj-q1) QueueEmpty(obj-q2); }void myStackFree(MyStack* obj) {QueueDestroy(obj-q1);QueueDestroy(obj-q2);free(obj); }/*** Your MyStack struct will be instantiated and called as such:* MyStack* obj myStackCreate();* myStackPush(obj, x);* int param_2 myStackPop(obj);* int param_3 myStackTop(obj);* bool param_4 myStackEmpty(obj);* myStackFree(obj); */
http://www.hkea.cn/news/14391505/

相关文章:

  • 英语网站大全免费网站vip功能怎么实现
  • dw做的网站不显示营销网站如何实现差异化
  • 淘宝客建网站怎么做网站首页的动态效果图怎么做
  • 怎么选择宜昌网站建设安徽品质网站建设创新
  • 深圳企业官方网站建设WordPress如何转换中文
  • 南京模板网站建设企业影视后期制作培训机构全国排名
  • 多城市分站网站建设嘉兴企业网站推广方法
  • 广告支持模式的网站网站授权管理系统怎么做
  • 一个网站如何做桌面快捷链接虚拟币 wordpress
  • 做seo需要建网站吗官方网站哪家做的最好
  • 开发一个网站的步骤流程北京网站建设在线
  • 三合一商城网站专业网站建设的公司
  • aspcms分类信息网站网站建设引入谷歌地图
  • 滨州网站建设sdshiya工作室装修
  • 网站建设 骏域网络建设专家广州建程网会员共享
  • 给网站做翻译合肥建站公司seo
  • 辽宁省网站建设网站建设有哪些困难
  • 西安手机网站如何建一个视频网站
  • 公司网站建设的分类东莞seo广告宣传
  • 网站app下载大全php程序员网站开发招聘
  • asp网站域名做后期从哪个网站选音乐
  • 中山网站建设 760互联网下载安装
  • 淘宝网站小视频怎么做中和阗盛工程建设有限公司网站
  • 网站动态标签免费下载app软件并安装手机
  • 图片站wordpress模板沈阳自助模板建站
  • 北京网站建设最便宜的公司网页设计模板图片美食
  • 网站被做镜像什么意思品牌设计是做什么
  • 重庆网站建站价格多说与网站账号绑定
  • 买cms做网站新手学习网站建设
  • 上海集团网站制作wordpress loop count