深圳专业网站建设多少钱哪些网站可以进行域名注册

张小明 2026/1/2 7:03:27
深圳专业网站建设多少钱,哪些网站可以进行域名注册,重庆沙坪坝有哪些大学,国家企业信用信息网官网本篇来讲解栈与队列~模块一#xff1a;栈#xff08;Stack#xff09;1. 基础知识栈是一种后进先出#xff08;LIFO#xff09; 的数据结构#xff0c;只允许在一端#xff08;称为栈顶#xff09;进行插入和删除操作。核心操作包括#xff1a;压栈#xff08;Push栈Stack1. 基础知识栈是一种后进先出LIFO的数据结构只允许在一端称为栈顶进行插入和删除操作。核心操作包括压栈Push向栈顶添加元素。弹栈Pop从栈顶移除元素。查看栈顶Peek获取栈顶元素但不移除。判空isEmpty检查栈是否为空。容量Size获取栈中元素数量。2. 数组实现栈使用数组实现栈时需维护一个指向栈顶的指针通常用top表示。数组大小固定需处理栈满的情况。代码实现public class ArrayStack { private int maxSize; // 栈的最大容量 private int[] stack; // 存储元素的数组 private int top; // 栈顶指针初始为-1 public ArrayStack(int size) { maxSize size; stack new int[maxSize]; top -1; } // 压栈 public void push(int value) { if (isFull()) { throw new RuntimeException(栈已满); } stack[top] value; } // 弹栈 public int pop() { if (isEmpty()) { throw new RuntimeException(栈为空); } return stack[top--]; } // 查看栈顶 public int peek() { if (isEmpty()) { throw new RuntimeException(栈为空); } return stack[top]; } // 判空 public boolean isEmpty() { return top -1; } // 判满 public boolean isFull() { return top maxSize - 1; } // 获取栈中元素数量 public int size() { return top 1; } }3. 双链表实现栈双链表双向链表每个节点包含前驱和后继指针实现栈时可灵活地在头部插入和删除节点时间复杂度为O(1)。代码实现public class LinkedListStack { private static class Node { int value; Node prev; Node next; Node(int value) { this.value value; } } private Node top; // 栈顶节点 private int size; // 栈中元素数量 public LinkedListStack() { top null; size 0; } // 压栈在链表头部插入 public void push(int value) { Node newNode new Node(value); if (top ! null) { newNode.next top; top.prev newNode; } top newNode; size; } // 弹栈移除链表头部节点 public int pop() { if (isEmpty()) { throw new RuntimeException(栈为空); } int value top.value; top top.next; if (top ! null) { top.prev null; } size--; return value; } // 查看栈顶 public int peek() { if (isEmpty()) { throw new RuntimeException(栈为空); } return top.value; } // 判空 public boolean isEmpty() { return size 0; } // 获取栈中元素数量 public int size() { return size; } }模块二队列Queue1. 基础知识队列是一种先进先出FIFO的数据结构元素从一端队尾插入从另一端队首删除。核心操作包括入队Enqueue向队尾添加元素。出队Dequeue从队首移除元素。查看队首Peek获取队首元素但不移除。判空isEmpty检查队列是否为空。容量Size获取队列中元素数量。队列的典型应用场景包括任务调度如线程池、消息队列、广度优先搜索BFS等。2. 数组实现队列循环队列数组实现队列时需解决假溢出问题即数组前部有空间但尾部已满。通过循环数组head和tail指针循环移动可高效利用空间。代码实现public class CircularQueue { private int maxSize; // 队列最大容量 private int[] queue; // 存储元素的数组 private int head; // 队首指针指向待出队元素 private int tail; // 队尾指针指向待插入位置 public CircularQueue(int size) { maxSize size 1; // 预留一个空位以区分队满和队空 queue new int[maxSize]; head 0; tail 0; } // 入队 public void enqueue(int value) { if (isFull()) { throw new RuntimeException(队列已满); } queue[tail] value; tail (tail 1) % maxSize; // 循环移动 } // 出队 public int dequeue() { if (isEmpty()) { throw new RuntimeException(队列为空); } int value queue[head]; head (head 1) % maxSize; // 循环移动 return value; } // 查看队首 public int peek() { if (isEmpty()) { throw new RuntimeException(队列为空); } return queue[head]; } // 判空head tail public boolean isEmpty() { return head tail; } // 判满(tail 1) % maxSize head public boolean isFull() { return (tail 1) % maxSize head; } // 获取队列中元素数量 public int size() { return (tail - head maxSize) % maxSize; } }3. 双链表实现队列双链表实现队列时在链表尾部插入节点入队在头部删除节点出队时间复杂度均为O(1)。代码实现public class LinkedListQueue { private static class Node { int value; Node prev; Node next; Node(int value) { this.value value; } } private Node head; // 队首节点 private Node tail; // 队尾节点 private int size; // 队列中元素数量 public LinkedListQueue() { head null; tail null; size 0; } // 入队在链表尾部插入 public void enqueue(int value) { Node newNode new Node(value); if (tail null) { head newNode; tail newNode; } else { tail.next newNode; newNode.prev tail; tail newNode; } size; } // 出队移除链表头部节点 public int dequeue() { if (isEmpty()) { throw new RuntimeException(队列为空); } int value head.value; head head.next; if (head ! null) { head.prev null; } else { tail null; // 队列已空 } size--; return value; } // 查看队首 public int peek() { if (isEmpty()) { throw new RuntimeException(队列为空); } return head.value; } // 判空 public boolean isEmpty() { return size 0; } // 获取队列中元素数量 public int size() { return size; } }总结对比实现方式栈时间复杂度队列时间复杂度特点数组所有操作O(1)所有操作O(1)需处理容量限制内存连续双链表所有操作O(1)所有操作O(1)动态扩容内存非连续栈优先使用java.util.Stack或java.util.Deque如ArrayDeque。队列优先使用java.util.Queue的实现类如LinkedList、ArrayDeque。不过都可以使用LinkedList。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

谷歌seo关键词优化搜索引擎seo外包

Excalidraw URL命名规范:清晰且利于SEO 在技术团队日益依赖可视化协作的今天,一张图表往往比千言万语更有效。Excalidraw 作为一款开源、轻量又极具表现力的手绘风格白板工具,已经成为许多工程师绘制架构图、流程图和产品原型的首选。随着 A…

张小明 2025/12/29 4:29:48 网站建设

做网站和网络推广修改wordpress登录路径

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

张小明 2025/12/28 19:22:04 网站建设

有哪些好的响应式网站有哪些免费的个人网站平台

Wan2.2-T2V-A14B与Pika Labs在应用场景上的差异化竞争 你有没有刷到过那种“AI生成”的短视频?一个穿着汉服的少女在樱花雨中转身,镜头缓缓推进——画面流畅、光影自然,几乎看不出是机器造的。这类内容背后,正是文本到视频&#x…

张小明 2025/12/29 4:29:48 网站建设

dedecms仿站行业关键词查询

想要零标注成本实现图像目标计数?X-AnyLabeling结合GeCO模型为您提供了完美的解决方案!作为一款基于AI的智能数据标注工具,X-AnyLabeling通过集成Segment Anything模型和先进的目标计数算法,让复杂场景下的目标统计变得前所未有的…

张小明 2025/12/29 4:29:49 网站建设

专门做钻石国外网站亚马逊中国网站建设目标

SELinux策略中的布尔值、条件策略与对象标签管理 1. 使用Apol检查布尔值和条件策略 Apol是一个非常实用的工具,可用于更轻松地检查条件策略语句以及相关的布尔值。当我们试图理解条件策略语句的影响,或者策略中同一条件多次出现时,Apol的作用尤为明显。 1.1 检查策略中的…

张小明 2025/12/29 4:29:47 网站建设

中国建设银行中国网站公司做网站一般要多少钱

第一性原理、分子动力学与机器学习三者的交汇融合已在相关研究领域展现强劲的研究热潮。借助第一性原理计算揭示材料内在的量子特性,并结合分子动力学模拟探究材料在实际环境下的动态行为;运用机器学习算法与上述方法结合,开发高性能预测模型…

张小明 2025/12/29 4:29:54 网站建设