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

企业网站资料大全超云seo优化

企业网站资料大全,超云seo优化,怎么在微信上做公众号,wordpress文章别名1.栈(Stack) 1.1概念 栈是一种特殊的线性表,它只允许一端进行增删查改操作,它的头称为栈顶,进行压栈和出栈的操作,则另一端称为栈底,并且它遵循着先进后出的操作。 压栈:也可称为进…

1.栈(Stack)

1.1概念

        是一种特殊的线性表,它只允许一端进行增删查改操作,它的头称为栈顶,进行压栈和出栈的操作,则另一端称为栈底,并且它遵循着先进后出的操作。

        压栈:也可称为进栈/入栈,该功能为为栈添加数据,在栈顶操作。

        出栈:该功能为栈删除数据,在栈顶操作。

        先进后出:也可称为后进先出,相当于几个人进到一个细小的胡同里,里面只能一人并排走,则第一人进去后,第二个第三个依次进去,可这是个胡同,前面无路可走,要想出去就只能让最后一个人进来的人先出去,而最先进来的人是最后一个出去的,这就是先进后出/后进先出

        

1.2栈的使用

  1. Stack:创建一个空的栈
  2. E push(E e):为一个栈添加元素
  3. E peek():取得栈顶元素不删除
  4. E pop():取得栈顶元素并删除
  5. int size():取得栈中的元素个数
  6. boolean isEmpty():判断栈是否为空 是为true 不是为false

public static void main(String[] args) {//1.创建栈Stack<Integer> stack=new Stack<>();//2.为栈添加元素stack.push(1);stack.push(1);stack.push(1);//3.取得栈顶元素 不删除stack.peek();//4.取得栈顶元素并删除stack.pop();//5.取得栈中的元素个数stack.size();//6.判断栈是否为空stack.isEmpty();}

1.3栈的模拟实现

        由于栈是单向进行操作,所以我们可以用数组来模拟实现栈。

public class MyStack {//用数组模拟栈public int []elem;//有效数public int usesize;//初始数组大小public static final int DEFAULT_SIZE=10;//初始化数组public MyStack(){elem=new int[DEFAULT_SIZE];}//模拟入栈public void push(int val){//如果栈为满就扩容if(isFull()){grow();}//反之,插入元素,并增加有效数elem[usesize]=val;usesize++;}//模拟出栈public int pop(){//如果栈为空 就放回-1if(isEmpty()){return -1;}//先定义一个返回值int val=elem[usesize];//将数组减一 达到出栈的效果usesize--;//返回出栈的数字return val;}//模拟返回栈顶元素public int peek(){//如果栈为空 就放回-1if(isEmpty()){return -1;}//放回数组第一个元素,模拟返回栈顶元素return elem[usesize];}//模拟返回栈中元素的个数public int size(){//这边的有效数即栈的个数return usesize;}//打印栈中元素个数public void printStack(){for(int i=0;i<usesize;i++){System.out.println(elem[i]+" ");}}//判断是否为满public boolean isFull(){//如果有效数==数组的长度 那么该数组就满了return usesize==elem.length;}//扩容public void grow(){//扩容2倍elem=Arrays.copyOf(elem,elem.length*2);}//判断是否为空public boolean isEmpty(){//如果有效数为0,那么就表示该数组中一个元素都没有,即栈为空return usesize==0;}}

2.队列(Queue)

2.1概念

        队列一端进行增加数据,另一端进行删除数据,增加数据的一端为尾,而它的头就进行删除数据,依据先进先出原则。

        队头:进行数据的删除。

        队尾:进行数据的增加。

        先进先出:也可称为后进后出,就像现实中的排队打饭,从队尾开始排队,要想打到饭出去就只能到队头的时候,这就是先进先出/后进后出。

2.2队列的使用

        在Java中,队列(Queue)是一个接口,底层通过链表来实现,所以示例化时需要依附于LinkedList对象,因为LinkedList实现了队列的接口

1.Queue: 创建空的队列

2.void offer(E e):为一个栈添加元素

3.E poll():取得队头元素并删除

4.E peek():取得队头元素不删除

5.int size():取得队列中元素的个数

6.boolean isEmpty(): 判断队列是否为空,是返回treu 不是返回false

public static void main(String[] args) {//1.创建空队列Queue<Integer> queue=new LinkedList<>();//2.为队列增加元素queue.offer(1);queue.offer(2);queue.offer(3);System.out.println(queue);//3.取得队头元素并删除queue.poll();//4.取得队头元素不删除queue.peek();//5.取得队列中元素的个数queue.size();//6.判断队列是否为空queue.isEmpty();}

2.3队列模拟实现

        由于栈是进行双向操作的,所以这边我们使用链表来模拟实现栈。

public class MyQueue {//因为使用链表模拟//所以先创建Node节点static class Node {private int val;private Node next;private Node prev;public Node(int val) {this.val = val;}}//链表头public Node front;//链表尾public Node rear;//模拟实现增加元素public void offer(int val) {//创建node变量接收要增加的元素Node node = new Node(val);//如果列表初始状态为空,//那么加入的第一个元素就是这个链表的头尾if (front == null) {front = node;rear = node;}//反之//因为队列增加元素是在队尾//所以这边我们使用尾插法模拟增加元素rear.next = node;//将队列的的最后一个元素的下一个指向指向nodenode.prev = rear;//将node的上一个指向指向列表的最后一个元素rear = node;//将队列的尾部标识移动到新增加的元素的位置}//模拟实现取得队头元素public int peek() {//如果队列为空,返回-1if (front == null) {return -1;}//反之 返回头元素的值return front.val;}//模拟实现取得队头元素并删除public int poll() {//如果队列为空,返回-1if (front == null) {return -1;}//先取得队头的元素int val = front.val;//将队头的元素移除front = front.next;//队头为队头的下一元素front.prev = null;//将对头的上一个指向改为nullreturn val;}//模拟实现取得队列中的元素个数public int size() {//定义一个cur元素为队头Node cur = front;//计数int count = 0;//但cur不为空时,计数一次并间cur往后移动一位while (cur == null) {count++;cur = cur.next;}return count;}//模拟实现判断队列是否为空public boolean isEmpty() {//如果队头没有元素 那么这个队列就为空return front == null;}//打印队列的元素public void printfQueue() {Node cur = front;while (cur != null) {System.out.print(cur.val + " ");cur = cur.next;}}}

       

http://www.dtcms.com/wzjs/405105.html

相关文章:

  • 出口网站建设方案百度影响力排名顺序
  • 招聘网站评估怎么做郑州免费做网站
  • 网站基础建设和管理暂行办法为企业策划一次网络营销活动
  • 新疆建设职业技术学院招生信息网站seo工作流程
  • java网站开发思维导图怎样在百度上做广告
  • 如何在对方网站上做外链深圳网站建设公司
  • 视频上到什么地方可以做网站链接中文网站排名
  • 多地优化调整疫情防控措施seo的方法
  • 公司网站如何更改内容企业seo如何优化
  • 网站推广页面 英语体验营销
  • 上海网站空间合肥做网站公司哪家好
  • 南昌网站建设公司价位适合小学生的最新新闻
  • 网站建设培训哪家好有创意的网络营销案例
  • lamp wordpress主题太原百度快速优化排名
  • 品牌推广部河南网站seo
  • 哈尔滨大型网站制作开发站长素材网站
  • ppt网站超链接怎么做企业seo顾问服务阿亮
  • 论坛门户网站开发企业自助建站
  • 如何承接设计网站建设英语seo什么意思
  • 数字广东网络建设有限公司电话杭州网络排名优化
  • 沈阳网站建设多少钱邵阳网站seo
  • 推荐几个没封的正能量网站产品市场营销策划方案
  • ubuntu中wordpressseo推广系统
  • 容桂营销网站建设建站公司最新报价
  • 网站邮箱接口怎么设置搜索推广公司
  • 网站的横幅怎么做吸引人的软文
  • wordpress虚拟3d网站sem代运营
  • 邢台移动网站建设报价比较正规的代运营
  • 常德做网站2022适合小学生的简短新闻
  • 网站建设中常用的技术有哪些seo超级外链发布