首页 文章 精选 留言 我的

精选列表

搜索[知识管理],共10000篇文章
优秀的个人博客,低调大师

C#知识点总结系列:C# 数据结构

线性表(Linear List) 线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,有且仅有一个开始结点没有前驱但有一个后继结点,有且仅有一个终端结点没有后继但有一个前驱结点,其它的结点都有且仅有一个前驱和一个后继结点。 线性表的顺序存储结构—顺序表 线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。 顺序表的特点 1.容量固定 存储顺序表的元素需要一整块内存空间,因而顺序表的容量一旦确定,便不能更改。 2.访问速度快 假设每个元素占用的空间大小为L个字节,其中第一个单元的存储地址则是该结点的存储地址,并设表中开始结点a1的存储地址(简称为基地址)是LOC(a1),那么结点ai的存储地址LOC(ai)可通过下式计算:LOC(ai)= LOC(a1)+L*(i-1) 1≤i≤n。 数组 线性表的顺序存储结构在C#中的最直接表现形式就是数组。在C#语言中,数组是最基础也是存取速度最快的一种集合类型。数组是引用类型,保存它们所需的内存空间会在托管堆上分配,一旦数组被创建,其中的所有元素将被初始化为它们的默认值。 int[] arrayInt= new int[10]; arrayInt[6] = 5; arrayInt[8] = 3; 以上代码声明了一个值类型int的数组,并把它的长度初始化为10,最后分别给第7和第9个元素赋值。 当数组元素为值类型时,数组对象存放的是值类型对象本身。当元素为引用类型时,数组对象存放的则是对象的引用(指针)。 Control[] arrayControl= new Control[8]; arrayControl[4] = new DropDownList(); arrayControl[6] = new TextBox(); 以上代码声明了一个引用类型Control的数组,并把它的长度初始化为8,最后分别给第5和第7个元素赋值。两个值是分别DropDownList和TextBox对象,虽然它们都继承自Control类,但两者却是不同类,它们的大小不一样。 ArrayList C#中的ArrayList 的容量是根据需要自动扩展的。ArrayList 提供添加、插入或移除某一范围元素的方法。 Insert(int index, object value)方法用于在指定索引处插入一个元素。为了保证顺序表中的每个元素物理上相邻,插入点后面的所有元素都将后移一位。 RemoveAt(int index)方法用于删除指定索引的元素,删除指定元素后,删除点后的所有元素将向前移动一位。 二叉树 二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。 二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。 这个定义是递归的。由于左、右子树也是二叉树, 因此子树也可为空树。 二叉树的深度优先遍历 1.先序遍历 若二叉树为非空,则过程为: (1) 访问根节点。 (2) 先序遍历左子树。 (3) 先序遍历右子树。 2.中序遍历 若二叉树为非空,则过程为: (1) 按中序遍历左子树。 (2) 访问根结点。 (3) 按中序遍历右子树。 3.后序遍历 若二叉树为非空,则过程为: (1) 按后序遍历左子树。 (2) 按后序遍历右子树 (3) 访问根结点。 本文转自程兴亮博客园博客,原文链接http://www.cnblogs.com/chengxingliang/p/3533908.html:,如需转载请自行联系原作者

优秀的个人博客,低调大师

DockerFile的编写和注意的一些知识点

CMD,RUN,ENTRYPOINT之类的差别。 VOLUMN和-V之间的差别。 EXPOSE和-P的对应等。 今天上午写了一个脚本,可以传参数进IMAGE,让启动的CONTAINER具有不同的行为。 另外是一些常用的方便命令: 删除所有正在运行的容器(先停止,再删除)。 docker stop $(docker ps -q) && docker rm $(docker ps -a -q) 启动镜像(包括端口映射,目录挂载-如果windows,那不是挂windows目录,是虚拟机目录,命令容器,传递参数) docker run -p 8889:80 -v /applog:/var/log/nginx --name testprism333 prism3 -e PRD ============================= 如果在Dockerfile中同时写了entrypoint和cmd,docker在build过程中会将cmd中指定的内容作为entrypoint的参数。 那么如果,我们希望每个容器都固定的执行一个config脚本,然后再运行特定的程序时,利用entrypoint和cmd可以如何做到呢?从上述分析可以很自然的想到,将entrypoint解析CMD参数,并以命令执行。 CMD命令的参数格式,一般写成 字符串数组的方式,如上面的例子。如: CMD ["echo","hello world"] 虽然也可写成CMD echo hello word 方式,但这样docker会在指定的命令前加 /bin/sh -c 执行,有时有可能会出问题。 所以推荐采用数据结构的方式来存放命令。 dockerfile 中的 ENTRYPOINT 和 CMD 看似一样,都是实现 container 启动命令,但是需要注意: 1、都有两种方式,数组方式,以及 shell 方式 ? 1 2 [ "sh" , "-c" , "echo hello" ] sh -c 'echo hello' 2、ENTRYPOINT 除了指定 container 入口之外,更重要的作用是: 通过它可以让一个 container 像一个 executable 一样。比如 ? 1 ENTRYPOINT ["/bin/sh"] 之后 build 出来的镜像就像一个 sh 程序文件一样,运行该 image,就像运行 sh 程序。 3、如果 ENTRYPOINT 指定了,并且采用了数组方式,即["exectable", "para1", "para2"],那么 CMD 指定的内容会被视为 ENTRYPOINT 数组中最后的一个参数 4、如果 ENTRYPOINT 使用 shell 方式,那么它会覆盖所有的 CMD 以及docker run后面指定的 command 5、docker run后面指定的 command 会取代 CMD 的内容 ============================= From nginx MAINTAINER Prism DevOps@pxx.com.cn WORKDIR /usr/local/nginx/html ENV NGINX_ROOT_DIR /usr/local/nginx/html VOLUME ["/applog", "/data"] RUN mkdir -p /var/devops/ COPY bootstart.sh /var/devops/bootstart.sh ENTRYPOINT ["/bin/bash", "/var/devops/bootstart.sh"] CMD ["-h"] #!/bin/bash # description: dockerfile function depend on CMD and ENTRYPOINT arg # author: chngjun855 # version alpha # date 2017-05-18 # get args while getopts "e:i:g:h" arg do case $arg in e) env=$OPTARG ;; i) ipaddr=$OPTARG ;; g) group=$OPTARG ;; h) echo "/bin/bash bootstart.sh -e [ENV] -i [ipaddress] -g [group]" ;; ?) echo "unknow argument, -e -i -g" exit 1 esac done echo "env is $env" echo "ipaddr is $ipaddr" echo "group is $group" # different function depend on different env arg case $env in FAT) echo "FAT html page" > /usr/share/nginx/html/test.html ;; UAT) echo "UAT html page" > /usr/share/nginx/html/test.html ;; PRD) echo "PRD html page" > /usr/share/nginx/html/test.html ;; esac nginx -g "daemon off;"

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册