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

构建企业门户网站的方法国内好用的搜索引擎

构建企业门户网站的方法,国内好用的搜索引擎,合肥的网站建设,学院网站建设通知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/16934.html

相关文章:

  • 周口网站制作公司哪家好优化大师破解版app
  • 衡南网站建设制作自己的网页
  • 临沂专业做网站公司嘉兴seo报价
  • 江苏建站服务南宁百度seo
  • 网站制作 火星科技网络营销中的四种方法
  • 哪个网站是做包装材料珍珠棉包管seo技术优化服务
  • 台湾网站建设公司重庆seo排名外包
  • 大连企业网站建设公司员工培训方案
  • 甘肃省住房与城乡建设部网站免费的郑州网络推广服务
  • 网站安装百度商桥在线网络培训平台
  • 河北中凯建设有限公司网站南京百度推广优化排名
  • 站点提交百度手机助手下载2021新版
  • 推广图片设计如何简洁好看seo推广方法有哪些
  • 微网站首页模板北京seo优化排名
  • 网站搭建h5是什么深圳正规seo
  • 网站建设 服务流程如何制定会员营销方案
  • 网站建设要钱吗最近时事热点
  • 淘宝客如何做网站专业做网站的公司
  • php怎么网站开发软文优化
  • 住房和城乡建设部网站投诉电话百度免费下载安装百度
  • 宝鸡市住房和城乡建设局官方网站网站加速
  • 推荐一本学做网站的书厦门人才网官网
  • 购物网站运作免费顶级域名申请网站
  • wordpress调用第一张图片不显示seo单页快速排名
  • 淘宝客建网站怎么做长沙网站制作公司哪家好
  • 做门户网站有前途吗百度搜索指数的数据来源
  • 经营性网站备案要求苏州网站seo服务
  • 做网站一般几个人谷歌推广方案
  • 类似美团网的网站是怎么做的国际新闻最新消息美国
  • 江西建设职业技能教育咨询网站网站及推广