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

网站搜索排优化怎么做网站建设推广公司

网站搜索排优化怎么做,网站建设推广公司,新余网站建设公司,安顺 网站建设前言#xff1a;在前面的文章中#xff0c;我们讲解了顺序表#xff0c;单链表#xff0c;双向链表。而我们今天要分享的栈则是基于之前的数据结构上搭建的#xff0c;但是相较于顺序表和链表来说#xff0c;栈的实现就非常简单了。 目录 一.栈(Stack)的概念 二.栈的数… 前言在前面的文章中我们讲解了顺序表单链表双向链表。而我们今天要分享的栈则是基于之前的数据结构上搭建的但是相较于顺序表和链表来说栈的实现就非常简单了。 目录 一.栈(Stack)的概念 二.栈的数据结构 三.栈的实现 判断栈已满 判断栈非空 入栈push 出栈pop 查看栈顶元素 完整代码 Java版本 c语言版 一.栈(Stack)的概念 栈是一种先进后出LIFO的数据结构在其中元素的的添加称为“入栈”和删除称为“出栈”仅在栈的顶部进行。因此最后一个插入到栈中的元素是第一个从栈中删除的元素。 它通常有两个主要操作 push在栈的顶部插入一个元素。pop从栈的顶部移除一个元素。 栈的push入栈图解 栈的pop出栈图解 我们可以看见对于栈的操作我们都是在栈顶上操作的先进来的元素会被后面的元素覆盖而最后一个进来的元素也就是栈顶因此我们称为先进后出LIFO 像传统的狙击步枪的弹夹就属于是一种栈的结构  二.栈的数据结构 对于栈的实现我们通常使用数组当然也可以使用链表不过相对而言数组的实现是更容易的。 而对于一个栈的数据结构他首先得有存放元素的位置我们这里选择用数组来存放其次还得有栈内元素个数的记录 public class MyStack {public int[] elem;public int usedSize; }三.栈的实现 对于一个栈他应该有以下这些功能 入栈出栈判断栈是否为空判断栈已满查看栈顶元素 判断栈已满 当已经使用的数组的大小等于数组本身的大小的时候栈就相当于满了 public boolean isFull() {return usedSize elem.length;} 判断栈非空 当数组内一个元素都没有也就是已经使用的数组大小为0的时候栈就是空的 public boolean isEmpety() {return usedSize 0;} 入栈push 当我们要将元素放入栈内的时候先进行判断只有在栈内还有剩余空间的情况下我们才会进行入栈操作如果没有剩余空间我们就进行扩容 public void push(int val) {if (isFull()) {//扩容elem Arrays.copyOf(elem, elem.length * 2);}elem[usedSize] val;} 出栈pop 出栈前要先进行判断如果栈内一个元素都没有那自然是不能进行出栈操作的我们就抛出一个自定义异常然后抛出对于正常的出栈操作我们拿出栈顶的元素然后让记录数组的个数减一 public int pop() {if (isEmpety()) {//栈为空无法出栈throw new EmptyStackException(栈为空无法弹出);}int popNumber elem[usedSize-1];usedSize--;return popNumber;} 查看栈顶元素 和出栈不一样的是查看栈顶元素只是将元素拿出来展示并没有实际上删除这个元素 public int peek() {if (isEmpety()) {//栈为空无法出栈throw new EmptyStackException(栈为空无法弹出);}return elem[usedSize - 1];} 完整代码 栈的整体实现相较于顺序表和链表是非常简单的这里附上完整代码 Java版本 import java.util.Arrays;public class MyStack {public int[] elem;public int usedSize;public static int DEFULT_SIZE 10;public MyStack() {this.elem new int[DEFULT_SIZE];}public void push(int val) {if (isFull()) {//扩容elem Arrays.copyOf(elem, elem.length * 2);}elem[usedSize] val;}public int pop() {if (isEmpety()) {//栈为空无法出栈throw new EmptyStackException(栈为空无法弹出);}int popNumber elem[usedSize-1];usedSize--;return popNumber;}public int peek() {if (isEmpety()) {//栈为空无法出栈throw new EmptyStackException(栈为空无法弹出);}return elem[usedSize - 1];}public boolean isFull() {return usedSize elem.length;}public boolean isEmpety() {return usedSize 0;}}c语言版 #include stdio.h #include stdlib.h#define STACK_SIZE 10// 定义栈结构体 typedef struct {int data[STACK_SIZE]; // 存放数据的数组int top; // 栈顶指针 } Stack;// 初始化栈 void init_stack(Stack *s) {s-top -1; // 栈顶初始化为-1 }// 判断栈是否为空 int is_empty(Stack *s) {return s-top -1; }// 判断栈是否已满 int is_full(Stack *s) {return s-top STACK_SIZE-1; }// 入栈 void push(Stack *s, int value) {if (is_full(s)) {printf(Stack overflow\n);exit(1);}s-data[s-top] value; // 栈顶指针先加1再将元素入栈 }// 出栈 int pop(Stack *s) {if (is_empty(s)) {printf(Stack underflow\n);exit(1);}return s-data[s-top--]; // 先将元素出栈再将栈顶指针减1 }// 获取栈顶元素 int peek(Stack *s) {if (is_empty(s)) {printf(Stack underflow\n);exit(1);}return s-data[s-top]; } 本次的分享就到此为止了希望我的分享能给您带来帮助也欢迎大家三连支持你们的点赞就是博主更新最大的动力如有不同意见欢迎评论区积极讨论交流让我们一起学习进步有相关问题也可以私信博主评论区和私信都会认真查看的我们下次再见
http://www.zqtcl.cn/news/42915/

相关文章:

  • 临漳+网站建设建网站教学
  • 盐城建设厅网站设计备案网站建设的方法有哪些
  • 青岛网站制作网站wordpress字体风格
  • 三合一网站建设 万网漳州软件开发公司
  • 网站开发标书怎么写有没有可以免费制作ppt的app
  • 云南凡科建站哪家好区块链开发商
  • 微企点网站建设的教学视频杨凌开发建设局网站
  • 麦客网做网站网站开发 页面功能布局
  • 网站备案资料申请分销平台有哪些?
  • 网站型营销任县网站建设设计
  • 中企动力做的网站经常打不开东莞食品公司东莞网站建设
  • 搭建微网站的基本流程馆陶网站建设
  • 品牌网站建设 磐石网络官方网站聚名网官方
  • 做网站首页的图片怎么缩小WordPress建站去掉后缀
  • 可以做家装设计的网站ppt汇报模板免费下载
  • 摄影网站设计方案龙华网站建设招聘
  • 番禺网站建设gzhchl软件工程大学排名
  • 网站平台建设服务合同网站建设中怎样进入后台
  • 网站建设基于知乎 php网站开发书籍
  • 南昌企业做网站网站添加微信分享代码
  • python源码分享网站织梦大气蓝色门户资讯网站模板
  • 做网站推广广告网站开发的逻辑
  • 网站建设的学习方法网站方案书
  • html5 做网站莱芜有名的痞子是谁
  • 加强门户网站建设通知石家庄做网站哪家好
  • 怎么建立类似百度问答的网站东莞网站建设都用哪个好
  • 自己的网站怎么做的网站建设兆金手指下拉
  • 宣传类网站只做英文网站 域名有什么要求
  • 企业网站模板大全番禺网站 建设信科网络
  • 山西手机响应式网站建设wordpress图片自动水印