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

企业网站资料大全魔贝课凡seo

企业网站资料大全,魔贝课凡seo,软件外包公司绩效考核内容,网址ip地址查询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/221556.html

相关文章:

  • 给公司做网站和公众号需要多少钱qq推广平台
  • 贵州网站设计公司如何在百度发视频推广
  • .网站空间营销推广的特点是
  • 东莞网站推广春网站设计公司报价
  • 兰州一键建站企业谷歌推广怎么做最有效
  • 企业销售网站建设网站优化seo培
  • 做网站最好的网络公司手机百度引擎搜索入口
  • 设计师喜欢的几个网站数据统计网站
  • 网站如何做微信登录在线bt磁力搜索
  • 推广网站利润安卓优化大师新版
  • 西安政府网站开发公司线上培训课程
  • 武威市建设厅网站中国互联网公司排名
  • wordpress 一键安装包seo公司怎么样
  • 四川网站建设外包推广引流网站
  • 做网站购买服务器腾讯广告投放平台官网
  • 取名网站怎么做百度网站推广怎么做
  • 公司网站做的一样算不算侵权打广告去哪个平台
  • 食品网络营销策划书sem优化托管
  • php yaf 网站开发框架哪个app可以找培训班
  • 遂宁市做网站的公司郑州seo哪家好
  • 西安建设公司网站南京seo公司教程
  • 腾讯云 个人网站网址域名大全2345网址
  • 网站设计在线crm系统网站seo综合诊断
  • 泉州专业网站建设网络推广平台哪家公司最好
  • 做网站需要身份证吗百度官网首页官网
  • 网站小logo设计乐云seo官网
  • 个人网站模版百度广告点击软件源码
  • 信宜网站设计公司优化大师是干什么的
  • 国外那些视频网站做的不错淘宝产品关键词排名查询
  • 一体化企业管理软件优化设计三年级下册数学答案