next

结构之美:单链表的头结点与头指针

社会主义新天地 提交于 2020-08-11 11:25:09
当链表的每个结点只包含一个指针域时,我们称此链表为单链表。 关于单链表的存取,有时候我们在单链表的第一个结点(有效元素)之前附设一个结点,称之为 头结点 ;指向头结点的指针,称之为头指针;对单链表的存取必须从头指针开始进行,由于单链表的最后一个数据元素没有直接后继,则指针为NULL。 对于头结点,数据域可以不存储任何信息,也可存储如链表长度等附加信息。 下面是带头结点的单链表与空表的比较图。 头指针与头结点不同,头结点即第一个结点, 头指针 是指向第一个结点的指针。链表中可以没有头结点,但不能没有头指针。 以下是头指针与头结点的关系: //定义结点的结构体 typedef struct LNode{ int data; struct LNode *next; }LNode,*LinkList; 则定义LinkList L;时,L为链表的头指针。 L=(LinkList) malloc (sizeof(LNode)); //创建一个结点 此处返回给L的是一个指针,并且赋给了头指针。 L->next=null; //这里说明我创建了一个头结点,即同时运用了头指针和头结点。 小结 关于头指针: 在线性表的链式存储结构中,头指针是指链表指向第一个结点的指针,若链表有头结点,则头指针就是指向链表头结点的指针。 头指针具有标识作用,故常用头指针冠以链表的名字。 无论链表是否为空,头指针均不为空

博客主题-Next风格

天大地大妈咪最大 提交于 2020-08-11 11:11:55
主题预览 当前博客主题即为next风格 适配方法 下载压缩包,按照文件名将内容复制粘贴到对应框中即可。 注意事项 请将主题设置为custom 禁用默认css 下载连接 Next.rar version:2020-07-10 来源: oschina 链接: https://my.oschina.net/u/4261335/blog/4359838

java利用Freemarker模板生成docx格式的word文档(全过程)

青春壹個敷衍的年華 提交于 2020-08-11 10:59:53
参考: https://my.oschina.net/u/3737136/blog/2958421?tdsourcetag=s_pcqq_aiomsg 具体思路 1.创建一个docx文档模板,其中的英文是根据自己需要填充的内容。 2.把docx文档修改为ZIP格式(修改.docx后缀名为.zip),然后把zip解压到当前目录 3.修改word目录下document.xml文档,把如下原来是time改为${time},改好后放入项目中,用于后边内容填充。【有时候一个单词可能会被拆分,自己要做相应的调整】 <#list minuteList as minute></#list> 可用于循环填充,相当于 for (Minute minte:minuteList),示列如下: < #list minuteList as minute > < w:p w14:paraId ="3BB7AF6B" w14:textId ="2AD2E958" w:rsidR ="00D80192" w:rsidRDefault ="00C4552D" w:rsidP ="00E47882" > < w:pPr > < w:pStyle w:val ="a6" /> < w:numPr > < w:ilvl w:val ="0" /> < w:numId w:val ="2" /> </ w:numPr > <

PAT 1037 Magic Coupon (25分) 贪心+排序+负负/正正得正

孤街浪徒 提交于 2020-08-11 10:40:59
题目 The magic shop in Mars is offering some magic coupons. Each coupon has an integer N printed on it, meaning that when you use this coupon with a product, you may get N times the value of that product back! What is more, the shop also offers some bonus product for free. However, if you apply a coupon with a positive N to this bonus product, you will have to pay the shop N times the value of the bonus product... but hey, magically, they have some coupons with negative N's! For example, given a set of coupons { 1 2 4 −1 }, and a set of product values { 7 6 −2 −3 } (in Mars dollars M$) where a

谈谈MySQL InnoDB存储引擎事务的ACID特性

寵の児 提交于 2020-08-11 10:40:19
1、前言 相信工作了一段时间的同学肯定都用过事务,也都听说过事务的4大特性ACID。ACID表示原子性、一致性、隔离性和持久性。一个很好的事务处理系统,必须具备这些标准特性: 原子性(Atomicity): 一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚。 一致性(consistency): 数据库总是从一个一致性的状态转换到另一个一致性的状态。(其实原子性和隔离性间接的保证了一致性) 隔离性(isolation): 通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的。 持久性(durability): 一旦事务提交,则其所做的修改就会永久保存到数据库中。 而我们最常说的隔离性其实有对应的隔离级别,MySQL规定的隔离级别有4种,分别是: READ UNCOMMITTED(读未提交): 在此级别里,事务的修改,即使没有提交,对其他事务也都是可见的。事务可以读取未提交的数据,也就是会产生 脏读 ,在实际应用中一般很少使用。 READ COMMITTED(读已提交): 大多数数据库系统的默认隔离级别都是它,但是MySQL不是。它能够避免脏读问题,但是在一个事务里对同一条数据的多次查询可能会得到不同的结果,也就是会产生 不可重复读 问题。 REPEATABLE READ(可重复读): 该隔离级别是MySQL默认的隔离级别

java利用Freemarker模板生成docx格式的word文档(全过程)

可紊 提交于 2020-08-11 09:48:13
参考: https://my.oschina.net/u/3737136/blog/2958421?tdsourcetag=s_pcqq_aiomsg 具体思路 1.创建一个docx文档模板,其中的英文是根据自己需要填充的内容。 2.把docx文档修改为ZIP格式(修改.docx后缀名为.zip),然后把zip解压到当前目录 3.修改word目录下document.xml文档,把如下原来是time改为${time},改好后放入项目中,用于后边内容填充。【有时候一个单词可能会被拆分,自己要做相应的调整】 <#list minuteList as minute></#list> 可用于循环填充,相当于 for (Minute minte:minuteList),示列如下: < #list minuteList as minute > < w:p w14:paraId ="3BB7AF6B" w14:textId ="2AD2E958" w:rsidR ="00D80192" w:rsidRDefault ="00C4552D" w:rsidP ="00E47882" > < w:pPr > < w:pStyle w:val ="a6" /> < w:numPr > < w:ilvl w:val ="0" /> < w:numId w:val ="2" /> </ w:numPr > <

博客主题-Next风格

北城以北 提交于 2020-08-11 09:42:59
主题预览 当前博客主题即为next风格 适配方法 下载压缩包,按照文件名将内容复制粘贴到对应框中即可。 注意事项 请将主题设置为custom 禁用默认css 下载连接 Next.rar version:2020-07-10 来源: oschina 链接: https://my.oschina.net/u/4290246/blog/4359854

MySQL的安装(超详细,附教程、安装包)

元气小坏坏 提交于 2020-08-11 08:31:37
如下为安装步骤 : 1、双击mysql-installer-community-5.7.12.0.msi,开始安装,直到遇到如下界面: 2、点击Finish,进行MySQL配置: 3、 Developer Machine(开发测试类,mysql 占用很少 资源) Server Machine(服务器类型,mysql 占用较多资源) Dedicated MySQL Server Machine(专门的数据库服务器,mysql 占用所有可用资源) 根据自己的类型选择,我默认了第一个 。 4、 Multifunctional Database(通用多功能型,好) Transactional Database Only(服务器类型,专注于事务处理,一般) Non-Transactional Database Only(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM 数据类型的支持仅限于non-transactional) 根据自己的类型选择,我默认了第一个 。 5、选择了使用用默认位置,直接按“Next”继续。 6、我这里选“Manual Setting”,设置了1400,应该够用了,哈哈哈,按“Next”继续 7、我选择了启用,把前面的勾打上,Port Number:3306(一般都是3306)。按“Next”继续。 8、这里选择第三个,然后在Character Set

Redis学习笔记(二) 链表

廉价感情. 提交于 2020-08-11 08:30:33
链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。 redis中链表应用广泛,如list中就使用了链表。 每一个链表节点使用listNode结构标识(双向链表): typedef struct listNode{ // 前置节点 struct listNode * prev; // 后置节点 struct listNode * next; // 节点值 void * value; } 链表大家都熟悉不做过多说明,再看下list结构的实现: typedef struct list{ listNode *head; // 表头节点 listNode *tail;/ 表尾节点 unsigned long len; // 链表所包含的节点数量 void *(*dup)( void *ptr); // 节点值赋值函数 void (* free ) ( void *ptr); // 节点值释放函数 int (*match)( void *ptr, void *key); // 节点值对比函数 } Redis 链表实现的特点: 1、双向链表,获取前置后置节点的时间复杂度都是O(1); 2、无环,对链表的访问以NULL为终点。 3、带有表头表尾指针,程序获取链表的表头节点和表尾节点的复杂度为O(1); 4、带链表长度计数器

百度质量部测试开发面试题

ぃ、小莉子 提交于 2020-08-11 08:14:34
目录 Chap1 测试基础 2 Chap2 测试设计 4 Chap3 算法 12 Chap4 设计题 19 Chap5 逻辑题 21 Chap6 编程及代码题 26 Chap7 计算机基础 38 1. C/C++ 38 2. JAVA 39 3. 多线程: 40 4. 网络编程 41 5. Linux : 43 Chap 8 项目和背景 47 Chap9 外部工具 48 1. Selenium 48 2. Ruby-Watir 49 3. QTP: 50 4. LoadRunner 51 Chap1 测试基础 附件1的19-21页是一个模拟的面试场景,其中有不少经典题型和问题。不过已经在网上广为流传,建议了解其中面试思路为主,题目不要照搬太多。 黑盒测试和白盒测试常用的测试方法有哪些?举例说明。 答:白盒测试:逻辑覆盖法,主要包括语句覆盖,判断覆盖,条件覆盖,判断条件覆盖,条件组合覆盖、路径覆盖。 黑盒测试:等价划分类,边界值分析,错误推测法等 静态测试和动态测试的概念。 答:静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量