c#栈和队列(两种)算法的应用。举一个简单的例子:在往箱子里面放衣物的时候,放在最上面的衣物总是我们最后放上去的;而当我们从箱子里取出衣物的时候,总是最先拿出上面的。这就是现实生活中的栈。 准确的讲,栈就是一种可以实现“先进后出(或者叫后进先出)”的存储结构。 学过数据结构的人都知道:栈可以用两种方式来实现,一种方法是用数组实现栈,这种栈成为静态栈;另外一种方法是用链表实现栈,这种栈叫做动态栈。 栈中通常存放着程序的局部变量等。栈通常有出栈和入栈操作。
2021-09-13 10:35:02 78KB 队列 栈和队列 队列的算法
1
/* * 基于双向链表实现双端队列结构 */ package dsa; public class Deque_DLNode implements Deque { protected DLNode header;//指向头节点(哨兵) protected DLNode trailer;//指向尾节点(哨兵) protected int size;//队列中元素的数目 //构造函数 public Deque_DLNode() { header = new DLNode(); trailer = new DLNode(); header.setNext(trailer); trailer.setPrev(header); size = 0; } //返回队列中元素数目 public int getSize() { return size; } //判断队列是否为空 public boolean isEmpty() { return (0 == size) ? true : false; } //取首元素(但不删除) public Object first() throws ExceptionQueueEmpty { if (isEmpty()) throw new ExceptionQueueEmpty("意外:双端队列为空"); return header.getNext().getElem(); } //取末元素(但不删除) public Object last() throws ExceptionQueueEmpty { if (isEmpty()) throw new ExceptionQueueEmpty("意外:双端队列为空"); return trailer.getPrev().getElem(); } //在队列前端插入新节点 public void insertFirst(Object obj) { DLNode second = header.getNext(); DLNode first = new DLNode(obj, header, second); second.setPrev(first); header.setNext(first); size++; } //在队列后端插入新节点 public void insertLast(Object obj) { DLNode second = trailer.getPrev(); DLNode first = new DLNode(obj, second, trailer); second.setNext(first); trailer.setPrev(first); size++; } //删除首节点 public Object removeFirst() throws ExceptionQueueEmpty { if (isEmpty()) throw new ExceptionQueueEmpty("意外:双端队列为空"); DLNode first = header.getNext(); DLNode second = first.getNext(); Object obj = first.getElem(); header.setNext(second); second.setPrev(header); size--; return(obj); } //删除末节点 public Object removeLast() throws ExceptionQueueEmpty { if (isEmpty()) throw new ExceptionQueueEmpty("意外:双端队列为空"); DLNode first = trailer.getPrev(); DLNode second = first.getPrev(); Object obj = first.getElem(); trailer.setPrev(second); second.setNext(trailer); size--; return(obj); } //遍历 public void Traversal() { DLNode p = header.getNext(); while (p != trailer) { System.out.print(p.getElem()+" "); p = p.getNex
1
操作系统实验 进程调度的设计与实现 目录 一、 实验的目的………………………………………………1 二、 实验的内容(任务)及要求……………………………1 三、 实验设备及环境…………………………………………1 四、 实验的原理………………………………………………1 五、 关键算法的实现流程图…………………………………2 六、 实验的设计思想及相关代码……………………………3 七、 实验的图形用户界面GUI设计…………………………8 八、 心得体会…………………………………………………8
2021-06-21 17:07:43 250KB 进程调度
1
1.请使用链栈实现通用数制转换程序:将任意一个十进制数转换成p进制的数。(p分别取2,8,16) 2. 假定一个单向循环链表来表示队列(即循环链队),该队列只设一个队尾指针rear,不设队首指针,试编写下列各种运算的算法: 向循环链队插入一个元素值为x的结点; 从循环链队中删除一个结点; 输出队列中所有元素;
2021-06-01 11:33:10 2KB 链栈、数制转换、队列
1
python顺序表、链表、栈、队列、排序算法代码
2021-03-27 20:18:57 7KB python数据结构与算法
1
实现 CPU 调度算法多级反馈队列调度算法;
2021-03-04 15:01:23 6KB CPU调度 多级反馈队列调度算法
1
操作系统中多级反馈队列调度算法 C语言模拟实现
1
1. 多级反馈队列调度算法 编写一个控制台程序模拟多级反馈对列调度算法。设需要调度的进程情况存放在文本文件“process.text”中,如下图所示(进程情况可以自己设置) 1 0 7 2 1 8 3 2 10 4 3 4 5 4 3 6 5 2 7 6 6 8 7 5 每一行描述一个进程,包含若干个字段字段间用Tab建或空格隔开。第一个字段代表进程的编号,第二个字段代表进程到达的时间,第三个字段代表 。 队列个数和每个队列的时间片长度可以由自己设置他们的值。要求程序必须能够正确给出各个进程到达,调度,运行和完成的时序,并将相应的信息打印出来。举列如下: T=0时刻,进程1到达。。。 T=0时刻,进程1开始被调度执行。。。。 。。。。 T=1时刻,进程2到达。。。 最后,计算并打印出各个进程的周转时间和带权周转时间。
1
用c语言模拟实现的多级反馈队列算法,固定进程数,可以自己改写通过键盘输入创建进程数
2019-12-21 22:24:44 7KB c 多级反馈队列 调度
1
短学期课程设计 多级反馈队列调度算法的实现 可供参考
2019-12-21 21:13:50 433KB 多级 队列 算法
1