链表——链式存储结构 ① 静态链表:把线性表的元素存放在数组中,这些元素之间通过逻辑关系来连接。数组单元存放链表结点,结点的链域指向下一个元素的位置,即下一个元素所在的数组单元的下标。但是涉及长度定义的问题,所以就出现了动态链表。 ② 动态链表:在程序执行过程中从无到有建立起来,一个一个地开辟结点和输入各结点的数据,并建立前后相连的关系。 单链表——所有结点都是单线联系 ① 特点:(1)头指针变量存放第一个结点的地址。                  (2)每个结点包含一个数据(用户需要的实际数据)和一个指针(存放下一个结点的地址)。                  (3)表尾结点不再指向其他结点,指针域为NULL,表示链表到此结束。 ② 优点:(1)链表中各结点之间的顺序关系由指针域来确定,不需要占用一片连续的内存空间。       &nbs 继续阅读 >>


贺含悦 17/05/31 23:46:03
新的六月,大一的生活马上也要结束啦,应该在最后的这段时间内再努力一把了,首先软工杯这个python项目应该作出写源代码的东西,其次应该吧鸟哥的私房菜linux看到shell部分,还有linux下C编程看一半应该差不多,也不多求。对于自己感兴趣的事情 比如html等等python或者服务器方面多了解了解。 作者:helloworld19970916 发表于 2017/05/31 22:59:25 原文链接 https://blog.csdn.net/helloworld19970916/article/details/72824909 阅读:108 继续阅读 >>


陈苏扬 17/05/31 22:59:25
原作者:海子 出处:http://www.cnblogs.com/dolphin0520/     本文归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Java的线程池,首先我们从最核心的ThreadPoolExecutor类中的方法讲起,然后再讲述它的实现原理,接着给出了它的使用示例,最后讨论了一下如何合理配置线程池的大小。 以下是本文的目录大纲: 一.Java中的ThreadPoolExecutor类 二.深入剖析线程池实现原理 三.使用示例 继续阅读 >>


董恒毅 17/05/31 20:47:24
Tim已经推出好久了,闲来无事,把自己原先在Playonlinux下的QQ轻聊版换成了更加简洁的Tim,予以记录。 完整步骤如下: 1.安装Playonlinux以及所需环境: 方法多种多样,在此列出常用Linux分发版的简单安装方法 archlinux、manjaro:sudo pacman -S playonlinux debian、ubuntu、deepin:sudo apt install playonlinux centos、fedora:sudo dnf install playonlinux 并以同样的方法安装wine、wine-mono和wine_gecko三个软件包 PS:在这里安装的wine、wine-mono和wine_gecko三个软件包全局性质的,能被系统安装的其他所有软件调用,如果无法通过apt、dnf等命令直接安装,可跳过此步骤,后文会给出另一种方案。 2.创建虚拟盘 打开软件,如图所示 里面已经安装的两个软件请无视ㄟ( ▔, ▔ )ㄏ 点击上图 继续阅读 >>


蒙祺殷 17/05/31 10:50:20
指针变量的sizeof ①学过数据结构的你应该知道指针是一个很重要的概念,它记录了另一个对象的地址。既然是来存放地址的,那么它当然等于计算机内部地址总线的宽度。所以在32位计算机中,一个指针变量的返回值必定是4(注意结果是以字节为单位),可以预计,在将来的64位系统中指针变量的sizeof结果为8。 char* pc = "abc"; int* pi; string* ps; char** ppc = &pc; void (*pf)();// 函数指针 sizeof( pc ); // 结果为4 sizeof( pi ); // 结果为4 sizeof( ps ); // 结果为4 sizeof( ppc ); // 结果为4 sizeof( pf&n 继续阅读 >>


陈文浩 17/05/30 22:33:28
#include<stdio.h> int main() { while(1) { fprintf(stdout,"Group"); fprintf(stderr,"XiyouLinux "); getchar(); } return 0; } 如果不输入得到一行,光标停止,如果加换行 但是如果没有输入换行,就会得到下列结果 因为stdout会先放在缓存区,等错误信息打出,在执行清除缓存,所以Group最后写出 如果我们在stdout那一行加上换行就不同了 #include<stdio.h> int main() { while(1) { fprintf(stdout,"Group\n"); fprintf(stderr,"XiyouLinux"); getchar(); } } Group会先 继续阅读 >>


陈文浩 17/05/30 21:40:31
数据传输指令的形式 指令效果描述 mov S, DD ← S 传送 movb 传送字节 movw 传送字 movl 传送双字 movq 传送四字 movabsq I, RD ← S 传送绝对的四字 需要注意的点 传送指令的两操作数不可均为内存位置。 movl在以寄存器作为目的时,会把寄存器的高位设为0 例子:分别执行movabsq $0xABCDEF0123456789, %r8和movl $0xFFFFFFFF, %r8d,此时%r8寄存器的值为00000000FFFFFFFF movq仅可以操作32位补码的立即数,而movabsq仅可以以寄存器为目的地 符号扩展/零扩展 零扩展 指令效果描述 movz S, RR ← (零扩展)S 以零扩展进行传送 movzbw 将做了零扩展的字节传送到字 movzbl 将做了零扩展的字节传送到双字 movzwl 将做了零扩展的字传送到双字 movzbq 将做了零扩展的字节传送到四字 movzwq 将做了零扩展的字传送到四字 继续阅读 >>


娄泽豪 17/05/30 20:51:40
数据格式 C声明 Intel数据类型 汇编代码后缀 大小(字节) char 字节 b 1 short 字 w 2 int 双字 l 4 long 四字 q 8 char * 四字 q 8 float 单精度 s 4 double 双精度 l 8 寄存器 主要用途 64位寄存器名 32位寄存器名 16位寄存器名 8位寄存器名 存储返回值 %rax %eax %ax %al 被调用者保存 %rbx %ebx %bx %bl 第四个参数 %rcx %ecx %cx %cl 第三个参数 %rdx %edx %dx %dl 第二个参数 %rsi %esi %si %sil 第一个参数 %rdi %edi %di %dil 继续阅读 >>


娄泽豪 17/05/30 19:57:12
程序中图的表示 邻接链表法 对于图G = (V, E),我们可以将之视为邻接链表的组合,该种表示方法在表示稀疏图(即边的条数|E|远远小于|V| ^ 2的图)时空间利用效率高而成为表示稀疏图,甚至是稠密图的主要方法之一。 对于上述例图,使用邻接链表的表示形式示意图如下: 不难从例子中总结出,对于图G = (V, E)来说,其邻接链表表示由一个包含|V|条链表的数组Adj组成,每个结点有一条链表。对于每一个结点u∈V,邻接链表Adj[u]包含所有与结点u之间有边相连的结点v,即Adj[u]包含图G中所有与u邻接的结点(也可以实现为链表中包含指向这些结点的指针)。 对于邻接链表表示而言,结点u的所有邻边的集合Adj[u]可以看做是图的一种属性。 邻接矩阵法 对于图G = (V, E),我们还可以将之表示为一个矩阵,该种表示方法在表示稀疏图时空间利用效率显然较低,但在表示稠密图时因为其实现形式较之邻接链表法难度显然降低,因此不失为一种好的选择。此外,邻接矩阵法的另一优势也体现在,对于任一边(u, v),邻接矩阵法表示可以在O 继续阅读 >>


娄泽豪 17/05/30 17:29:29
grep 命令 :强大的文本’搜索’工具 1.grep -n 'word' file_name 在file_name文件中找到word所在的所有行并显示。-n 为显示行号。 2.grep 'w[ea]ll' file_name 在file_name文件中找到wall 或者是well 所在的所有行并显示 3.grep 'w[^e]ll' file_name 在file_name文件中找到”非well” 所在的所有行并显示 4.grep '^The' file_name 在file_name文件中找到以The开头的所有行并显示(请与上一条命令进行区别) 5. grep 'goo..le' file_name 在file_name文件中找到goo(任意字符)(任意字符)le的所有行并显示(即总共七个字符) 6.grep 'g*g' file_name 在file_na 继续阅读 >>


刘生玺 17/05/30 16:12:51