top

Java数据结构与算法-栈和队列

主宰稳场 提交于 2020-03-21 12:46:39
   (摘录加总结)------   栈和队列不属于基础的数据结构,它们都属于线性表。 一、栈   对于栈存储操作元素只能在栈结构的一端进行元素的插入和删除,是一种性质上的线性表结构。按照“先进后出”的原则进行存储数据。先进的元素在栈底,后进的元素在栈顶。需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。比较常规的说明是:栈底固定,而栈顶浮动;栈中元素个数为零时称为 空栈 。插入一般称为 进栈(PUSH) ,删除则称为 退栈(POP) 。   栈的实现结构包括 顺序结构实现 和 链式结构实现 。前者依据的是 数组 ,后者是 链表 。    (1)利用数组实现栈    下面这个是一个基本的实现:①在Stack底层设置了一个int数组,当然可以使用泛型来指代不同的数据类型。最大容量和栈顶位置。特别需要注意的是在初始化时也看出来,一般在初始化的时候top位置设置为-1,这是利于后面在压入数据的时候数组的第一位是array[0],并且maxSize最大容量和数组的length是一致的。②top表示这个数组的当前的没有被设置元素的第一个位置的标志位是多少,首先要判断是否小于maxSize-1,因为是从-1开始的,并且每次判断都是++top,是先自增的处理,示意如下,假如初始化了一个容量为3的数组:   ③当压栈完成的时候自然top的索引值已经变成了数组最高项的值的大小

贪吃蛇小游戏

☆樱花仙子☆ 提交于 2020-03-20 23:29:23
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0px; padding: 0px; } .show { width: 400px; margin: 100px auto 0px; } .game { width: 400px; height: 400px; background-color: aqua; position: relative; } .userGame { width: 10px; height: 10px; background-color: #000; position: absolute; top: 0px; left: 0px; } .foot { width: 10px; height: 10px; background-color: red; position: absolute; top: 0px; left: 0px; } </style> </head> <body> <div class="show"> <div class="game">

「实验 4 类和对象-2」

梦想的初衷 提交于 2020-03-19 07:10:47
1.实验内容2 graph类 /*附加拓展1和2*/ draw()函数的话,因为每一行输出的是空格和规定字符,输出空格数等于 总行数-当前行数 ,输出字符数等于 当前行数*2-1 。 graph.h 1 #ifndef GRAPH_H 2 #define GRAPH_H 3 4 // 类Graph的声明 5 class Graph { 6 public: 7 Graph(char ch, int n); // 带有参数的构造函数 8 void draw(); // 绘制图形 9 void redraw(); //重绘图形 10 void changecolor(); //改变颜色 11 private: 12 char symbol; 13 int size; 14 }; 15 16 17 #endif graph.cpp 1 #include "graph.h" 2 #include <iostream> 3 #include<cstdlib> 4 using namespace std; 5 6 // 带参数的构造函数的实现 7 Graph::Graph(char ch, int n): symbol(ch), size(n) { 8 } 9 10 11 // 成员函数draw()的实现 12 // 功能:绘制size行,显示字符为symbol的指定图形样式 13 //

Top命令你最少要了解到这个程度

筅森魡賤 提交于 2020-03-18 17:59:34
top 命令几乎是每个程序员都会用到的Linux命令。这个命令用来查看Linux系统的综合性能,比如CPU使用情况,内存使用情况。这个命令能帮助我快速定位程序的性能问题。 虽然这个命令很重要,但是之前对于这个命令的使用几乎仅限于查看下哪个进程使用的CPU最高,哪个进程占用的内存最高。对于输出的各个参数的含义也是一知半解,更不用说 top 的一些高级用法了。 本篇博客就来具体分析下 top 的详细使用方法。 top 输出参数的含义 在Linux终端输入 top ,一般会有如下输出。 top - 15:34:12 up 127 days, 10:23, 2 users, load average: 0.04, 0.03, 0.00 Tasks: 291 total, 1 running, 290 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 98.3%id, 1.3%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1792312k total, 288300k used, 1504012k free, 10384k buffers Swap: 6291452k total, 5380k used, 6286072k free, 14128k cached PID USER PR NI VIRT

退出系统时跳出frame框架

南笙酒味 提交于 2020-03-17 05:10:09
传统的系统界面,有iframe页面,当用户退出系统或者session过期或者非法请求时,都要使当前页面跳转到登录页面。比如用户点击注销的按钮在上面得top.jsp里面,方法:<a href="../login/action_logout.do">退出系统</a>退出之后你会发现,只是刷新了top.jsp上面那个iframe,其他两个还在,当然不允许这样啦。解决办法大致有几种 常规的退出系统无非就是两种方式,一个是点击超链接,页面跳转到登录页面,另一个就是点击页面元素,触发js事件,使当前页面跳转。 1、利用超链接属性中target="_parent"。 在超链接中加入target属性<a href="../login/action_logout.do" target="_parent">退出系统</a> 就可以了,他的原理相当于目标页面替换当前的父窗体,而不是当前操作的窗体。 target属性值的含义: _blank:新建窗口、_self:相同窗口、_parent:父窗口、_top:首窗口 2、利用js 1)<a href="#" onclick=top.location.replace("logout.action")>退出</a> 在logout()函数中将session清空,返回的登录页面就会全屏显示登录页面.他的原理相当于在请求发送前

Linux查看CPU和内存使用情况

给你一囗甜甜゛ 提交于 2020-03-17 04:05:48
top命令   top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。   运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。    内容解释: 第一行(top):   15:24:36 系统当前时刻   14 days 系统启动后到现在的运作时间   3 users 当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目   load average 当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程 第二行(Tasks):   288 total 当前系统进程总数   1 running 当前运行中的进程数   287 sleeping 当前处于等待状态中的进程数   0 stoped 被停止的系统进程数   0 zombie 僵尸进程数 第三行(Cpus):   7.3% us 用户空间占用CPU百分比   2.0% sy

jQuery-动画 animate() hide() show() toggle() fadeT0() slideToggle()

孤者浪人 提交于 2020-03-16 11:09:19
弹出层:点击按钮出现弹出层,点击弹出层本身或者网页任意处弹出层消失。 注,点击按钮时要取消冒泡event.stopPrepagation();设置弹出层的位置$(event.target).offset().top+'px', $(event.target).offset.left+'px'   $('#divPop').show()显示弹出层。点击网页任意处关闭弹出层$(document).click(function(event){$('#divPop').hide()}); js: $(function(){ var speed=500; $('#btnShow').click(function(event){ event.stopPropagation(); var offset=$(event.target).offset(); $("#divPop").css({top:offset.top+$(event.target).height()+'px',left:offset.left+'px'}); $('#divPop').toggle(speed); }); $(document).click(function(event){$('#divPop').hide(speed);}); $('#divPop').click(function(event){$(this)

序列合并(优先队列)

折月煮酒 提交于 2020-03-16 04:49:22
洛谷题目链接: 序列合并 题目描述 有两个长度都是N的序列A和B,在A和B中各取一个数相加可以得到 N 2 个和,求这 N 2 个和中最小的N个。 输入输出格式 输入格式: 第一行一个正整数N; 第二行N个整数 A i ​ , 满足 A i ≤A i+1 且 A i ≤10 9 ; 第三行N个整数 B i ​ , 满足 B i ≤B i+1 且 B i ≤10 9 . 【数据规模】 对于50%的数据中,满足1<=N<=1000; 对于100%的数据中,满足1<=N<=100000。 输出格式: 输出仅一行,包含N个整数,从小到大输出这N个最小的和,相邻数字之间用空格隔开。 输入输出样例 输入样例#1: 3 2 6 6 1 4 8 输出样例#1: 3 6 7 一句话题意: 两个长度为 n的单调递增的序列可以组成 n 2 个组合,问这些组合中最大的前n 个. 题解: 首先看一下下面这张表: A[1]+B[1] <= A[1]+B[2] <= … <= A[1]+B[N] A[2]+B[1] <= A[2]+B[2] <= … <= A[2]+B[N] …… A[N]+B[1] <= A[N]+B[2] <= … <= A[N]+B[N] 显然,在同一列中,每一行都比上面一行的值要大. 所以,我们可以先将 A 1 ~ A n 与 B 1 的值都加入堆中,每次取出了堆中的最小值

Silverlight中的Binding使用(一、二、三)

[亡魂溺海] 提交于 2020-03-15 04:19:01
本文将详细讲述Silverlight中Binding,包括Binding的属性和用法,Binding的数据流向。 Binding:一个完整的Binding过程是让 源对象 中的某个 属性值 通过一定 流向规则 进行 转换 和 验证 之后绑定到目标对象的某个属性上面。这个源对象由ElementName指定,源对象的属性由Path指定,流向规则由Mode指定,转换由Converter指定,验证由ValidatesOnDataErrors等指定。 首先我们来看Binding的属性如下:      ElementName :指定源对象的名称    Path :指定需要绑定的源对象的属性名称     Mode :指定Binding的数据流向规则   Converter :指定源对象的属性需要经过用户自定义的转换 其次我们来看看Binding的数据流向Mode分为以下几种:      OneTime :源对象的属性只有在第一次的时候绑定到目标对象,以后源对象属性值变化时,目标对象值不变      OneWay :源对象的属性值变化的时候,目标对象值也跟着相应变化,而目标对象值变化时,源对象属性值不变      TwoWay :源对象的属性值变化的时候,目标对象值也跟着相应变化,目标对象值变化时,源对象属性值也跟着变 下面我们通过以下实例源码来看看Binding的简单应用和转换

栈与队列:栈的顺序储存结构

随声附和 提交于 2020-03-14 12:39:20
1.栈的元素必须后进先出 2.栈的操作只能在线性表的表尾进行 3.对于栈,栈的表尾称为栈顶(top),相应的表头称为栈底(bottom)。 栈的插入操作(push)叫进栈,也叫压栈,入栈。 栈的删除操作(Pop),叫出栈,也叫弹栈。 //栈基本操作 //栈的顺序存储结构 #define STACK_INIT_SIZE 100 typedef struct { ElemType *base; //base是指向栈底的指针变量 ElemType *top; //top是指向栈顶的指针变量 int stackSize; //stackSize指示栈的当前可使用的最大容量 }sqStack; //初始化 initStack(sqStack *s) { s->base = (ElemType *)malloc(STACK_INIT_SIZE*(ElemType)); if(!s->base) exit(0); s->top = s->base; //最开始栈顶就是栈底 s->stackSize = STACK_INIT_SIZE; } //入栈 每次向栈中压入一个数据,top指针+1,直到栈满为止 #define SATCKINCREMENT 10 //增量 Push(sqStack *s,ElemType e) { //如果栈满,追加空间 if(s->top - s->base >= s-