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

绍兴网站开发08keji深圳装饰装修公司

绍兴网站开发08keji,深圳装饰装修公司,做网站商标分类,公司网站发展策划书目录前言一、原题二、解题思路三、代码实现(c/c)C语言代码C代码实现结语前言 目前博主在处于秋招求职的关键时期,在暑假这段时间会频繁更新博客,想在暑假期间把一些常考的面试和笔试题过一下,利用这两个月沉淀一下技术…

目录

  • 前言
  • 一、原题
  • 二、解题思路
  • 三、代码实现(c/c++)
    • C语言代码
    • C++代码实现
  • 结语

前言

目前博主在处于秋招求职的关键时期,在暑假这段时间会频繁更新博客,想在暑假期间把一些常考的面试和笔试题过一下,利用这两个月沉淀一下技术,做出一,两个比较大的项目,然后就是封装一下简历,开始投递了,我期待与26届所有毕业生一起学习共同进步。

在这里插入图片描述

一、原题

在这里插入图片描述

二、解题思路

1.s1用作入队栈,s2用作出队栈。

2.s1入队时,判断两个栈是否栈满了,如果满就算入队失败;如果s1满了,就将s1里的元素出栈入栈到s2,同时也要判断s2是否满了,如果满了就结束s1出栈,s2入栈这个操作,最后s1插入元素。

3.s2出队时,判断两个栈是否为空,如果为空就出队失败;如果s2为空,就将s1所有元素出栈入栈到s2,最后出栈元素。

三、代码实现(c/c++)

C语言代码

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>#define MaxSize 10
typedef int DataType_t;typedef struct {DataType_t data[MaxSize];size_t top;
} Stack;typedef struct {Stack s1;Stack s2;
} Queue;void InitStack(Stack* stack) {stack->top = 0;
}bool IsFull(Stack* stack) {return stack->top == MaxSize;
}bool IsEmpty(Stack* stack) {return stack->top == 0;
}bool Push(Stack* stack, DataType_t val) {if (IsFull(stack)) {printf("栈满,插入元素失败\n");return false;}stack->data[stack->top++] = val;return true;
}bool Pop(Stack* stack, DataType_t* val) {if (IsEmpty(stack)) {printf("栈空,弹出元素失败\n");return false;}*val = stack->data[--stack->top];return true;
}void InitQueue(Queue* queue) {InitStack(&queue->s1);InitStack(&queue->s2);
}bool IsQueueEmpty(Queue* queue) {return IsEmpty(&queue->s1) && IsEmpty(&queue->s2);
}bool IsQueueFull(Queue* queue) {return (queue->s1.top + queue->s2.top) == MaxSize;
}bool Enque(Queue* queue, DataType_t val) {if (IsQueueFull(queue)) {printf("队满,入队失败\n");return false;}DataType_t temp;if (IsFull(&queue->s1)) {while (!IsEmpty(&queue->s1) && !IsFull(&queue->s2)) {Pop(&queue->s1, &temp);Push(&queue->s2, temp);}}return Push(&queue->s1, val);
}bool Deque(Queue* queue, DataType_t* val) {if (IsQueueEmpty(queue)) {printf("队空,出队失败\n");return false;}DataType_t temp;if (IsEmpty(&queue->s2)) {while (!IsEmpty(&queue->s1)) {Pop(&queue->s1, &temp);Push(&queue->s2, temp);}}return Pop(&queue->s2, val);
}

C++代码实现

#include <iostream>
using namespace std;const int MAX_SIZE = 100; // 栈的最大容量// 栈结构定义
struct Stack {int data[MAX_SIZE];int top = -1; // 栈顶指针,初始为-1
};// 栈操作函数
void push(Stack &ST, int x) {if (ST.top < MAX_SIZE - 1) {ST.data[++ST.top] = x; // 栈顶指针先加1,再入栈}
}bool pop(Stack &ST, int &x) {if (ST.top == -1) return false; // 栈空,弹出失败x = ST.data[ST.top--]; // 取栈顶元素,指针减1return true;
}bool isEmpty(Stack &ST) {return ST.top == -1; // 栈空返回 true
}// 队列结构(由两个栈组成)
struct Queue {Stack s1, s2;
};// 元素入队列
bool enQueue(Queue &q, int x) {if (q.s1.top == MAX_SIZE - 1) {// s1 已满,尝试转移元素到 s2if (!isEmpty(q.s2)) return false; // s2 非空,队列满,入队失败// 将 s1 的所有元素转移到 s2(逆序)while (!isEmpty(q.s1)) {int temp;pop(q.s1, temp);push(q.s2, temp);}}push(q.s1, x); // 新元素压入 s1return true;
}// 元素出队列
bool deQueue(Queue &q, int &x) {if (!isEmpty(q.s2)) { // s2 非空,直接弹出pop(q.s2, x);return true;}// s2 为空,转移 s1 的元素到 s2while (!isEmpty(q.s1)) {int temp;pop(q.s1, temp);push(q.s2, temp);}if (isEmpty(q.s2)) return false; // 转移后仍为空,队列空pop(q.s2, x); // 弹出 s2 栈顶(即队首)return true;
}// 判断队列是否为空
bool queueEmpty(Queue &q) {return isEmpty(q.s1) && isEmpty(q.s2); // 两栈均空时队列为空
}int main() {Queue q;// 测试用例enQueue(q, 1);enQueue(q, 2);enQueue(q, 3);int x;deQueue(q, x); // 输出 1cout << "Dequeued: " << x << endl;deQueue(q, x); // 输出 2cout << "Dequeued: " << x << endl;cout << "Queue empty? " << queueEmpty(q) << endl; // 输出 0(非空)return 0;
}

结语

在做项目之前,我们的基础一定要打扎实,尤其是,这些简单的线性数据结构,你们学到后面会发现,好多存储结构都逃不掉,顺序存储结构和链式存储结构,一定要自己动手多敲,只有脑子有料,到后面做项目才会得心应手,否则你到后面根本学不下。

在这里插入图片描述

希望各位靓仔靓女点赞,收藏,关注多多支持,我们共同进步,后续我会更新更多的面试真题,你们的支持将是我前进最大的动力。

在这里插入图片描述

http://www.dtcms.com/a/475949.html

相关文章:

  • 邱县网站建设近两年成功的网络营销案例及分析
  • 沈阳网站seo排名优化嘉兴注册公司
  • 做网站维护工作难吗免费行情网站链接
  • 网站建设平台官网河间米各庄互联网上网络营销的推广
  • 湖南seo网站多少钱天津网站建设需要多少钱
  • 网站建设国风网络公司wordpress猜你喜欢功能
  • 百度搜索网站怎么做网站可以给pdf做笔记
  • 曲靖住房和城乡建设局网站建设工程施工合同 示范文本
  • 海南网站建设fwlit软件开发模型包括哪些
  • VMWare和物理机之间文件传输
  • 自助建网站系统看电影工业厂房设计
  • 网页制作与网站建设从入门到精通 下载网站改版 总结
  • 定制型网站建设推广redis wordpress 提速
  • 最好的商业网站化妆培训网站 源码
  • 华为ENSP——OSPF的基本配置实验
  • 网站建设公司如何企业网站群建设的原因
  • 万网没备案怎么做网站自己怎么做网站赚钱吗
  • 制作网站地图软件开发定制app
  • 网站建设先进技术手机app制作公司郑州
  • 手机短视频网站的建设模型网站
  • 福州网站开发私人富阳房产网
  • 广西钦州网站建设网页设计师需要学什么课程
  • 广州网站设计培训云南网络营销推广
  • 蓝牙技术栈笔记(2)
  • Java接入火山引擎快速体验
  • 求一个dw做的网站企业网站建设资金预算表
  • 企业 网站备案 法人购物网站前台模板
  • 58同城盐城网站建设网站建设违约责任
  • asp网站上传重庆网站建设leco tec
  • 要服务网站建设wordpress顶部加横幅