自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 用两个栈实现队列的操作

只要了解栈和队列的特性,这道题应该就不会有难度,插入元素的时候,都插入到第一个栈,然后删除的时候,可以把第一个栈中的元素全部弹出并压入第二个栈,这样的话第二个栈中的元素与第一个栈的元素顺序相反,先进的元素处于栈顶,可以直接进行删除,这样的话,删除一个元素的步骤是:当第二个栈不为空时,处于栈顶的元素总是最先进入队列的元素,可以弹出,如果第二个栈为空时,把第一个栈中的元素逐个弹出并压入第一个栈即可。如

2016-04-26 20:49:47 449

原创 根据二叉树的前序遍历和中序遍历构建二叉树的c语言完整代码

//重建二叉树:输入某二叉树的前序和中序遍历,重建出该二叉树#include#includetypedef struct binarytreenode{ int value; struct binarytreenode *left; struct binarytreenode *right;}binary;binary* constructcore(int *st

2016-04-26 17:22:10 5720

原创 从尾到头打印链表中每个节点的值(采用栈实现)

用栈实现从尾到头输出链表中的结点的完整c语言代码

2016-04-25 15:49:43 552

原创 查找链表中倒数第k个结点

例如有一个链表一共有6个结点,从头开始他们的值依次是1、2、3、4、5、6,那么这个链表的倒数第三个结点是值为4的结点。首先看到这个题目,我们也许会想到从链表的尾端开始遍历,回溯K步,可是这个链表是单链表,只有从前向后的指针,没有从后向前的指针,因此这种思路不行,于是我们又想到链表的倒数第k 个结点就是从头开始的N-k+1个结点,因此只需从头遍历走n-k+1步即可。可是这样的话为哦们需要对

2016-04-24 11:05:31 1059

原创 字符串中的空格替换

实现一个函数,将字符串中的每个空格替换成“%20”,例如输入i am happy,输出i%20am%20happy。  首先我们想到的是原来一个空格符,替换成三个字符‘%’、‘2’、‘0’.  解法一:最直观的做法就是从头到尾扫描字符串,每碰到一个空格,就必须先把空格后面的字符后移两个字节,否则后面的两个字节就被覆盖了,假设字符串的长度为n,对于一个空格字符,需要向后移动0(n)个字符,因

2016-04-22 17:11:38 1468

原创 将一个字符串转换为整数

这个题目本身其实没有什么难度,但是重在考察我们的细心程度,要考虑全面,尽可能提高程序鲁棒性。首先要考虑到所输入的字符串是否是空字符串,空指针,输入的字符串是否有效,以及是否包含非法字符,如果正确的话则在考虑字符串的正负以及转换后的整数是否溢出。//将一个字符串转换为整数#include#includeint main(){ char *s="345"; int n

2016-04-18 18:01:51 961

原创 tcp三次握手四次挥手(及原因)详解

TCP(Transmission Control Protocol,传输控制协议)是 面向连接的协议,也就是说在收发数据之前,必须先和对方建立连接,一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的 描述下这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步 (同步就是两台主机一个

2016-04-13 21:02:55 33500 14

原创 java虚拟机类加载机制---《深入理解java虚拟机》读书笔记

Java虚拟机类加载机制是把Class类文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程。    java可动态扩展的语言特性就是依赖运行期动态加载和动态链接这个特点实现的。    类从被加载到虚拟机内存中开始,到卸载出内存为止,整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段,其中验证、准备、解析3

2016-04-12 21:52:24 2871

原创 InnoDB存储引擎表的逻辑存储结构

1.索引组织表:    在InnoDB存储引擎中,表都是按照主键顺序组织存放的,这种存储方式的表称为索引组织表,在innodb存储引擎表中,每张表都有主键,如果创建的时候没有显式定义主键,则InnoDB会按照如下方式选择或者创建主键: 1). 首先判断表中是否有非空的唯一索引,如果有,则该列就为主键。 2).   如果不符合上述条件,则innodb会自动创建一个6字节大小的指针 如

2016-04-12 17:38:32 4555

原创 java线程安全和锁优化

面向对象的编程思想是站在现实世界的角度去抽象和解决问题,他把数据和行为都看作是对象的一部分,这样可以让程序员能以符合现实世界的思维方式来编写和组织程序。线程安全的一个恰当的定义:当多个线程访问一个对象时,如果不用考虑这些线程在运行环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的 。按照线程安全

2016-04-10 16:17:43 3123 2

原创 InnoDB存储引擎的文件简述(表空间文件和重做日志文件)

除了mysql数据库本身的文件外,各个存储引擎还有自己独有的文件,与innodb密切相关的文件有:  1)表空间文件:      innodb采用将存储的数据按表空间进行存放的设计,在默认配置下会有一个初始大小为10mb.名为ibdata1的文件,该文件即为默认的表空间文件,可以通过参数innodb_data_file_path进行设置,用户可以通过多个文件组成一个表空间,同时制定文件的

2016-04-09 18:56:00 1860

原创 mysql数据库的各种类型的文件简述

1.参数文件:     1)参数        数据库参数其实就是一个键值对,比如innodb存储引擎中的innodb_buffer_pool_size,将这个参数设为1G,则键是innodb_buffer_pool_size,值为1G,一般通过show variables来查看数据库中的所有参数。     2)参数类型        mysql数据库中的参数可以分为两类,分别是动

2016-04-09 16:09:13 3925

原创 java虚拟机内存结构----《深入理解java虚拟机》读书笔记

最近在看java虚拟机的书籍,对于第二章的一个知识点的总结:java虚拟机规范规定的java虚拟机内存其实就是java虚拟机运行时数据区,其架构如下:其中方法区和堆是由所有线程共享的数据区。Java虚拟机栈,本地方法栈和程序计数器是线程隔离的数据区。(1).程序计数器:是一块较小的内存空间,其作用可以看作是当前线程所执行的字节码的行号指示器,字节码解析器工作时通过改

2016-04-09 11:44:13 428

原创 InnoD存储引擎的关键特性

今天在阅读InnoDB存储引擎后,对其的一些了解,并对它的关键特性做了一下总结:1.插入缓冲(insert buffer)  1)使用插入缓冲的原因:       非聚集索引叶子节点的插入不再是顺序的了,需要离散的访问分聚集索引,由于随机读取的存在而导致了插入的性能降低,这是因为B+树的特性决定了非聚集索引的离散性,       因此innodb存储引擎设计了插入缓冲,对于非聚

2016-04-08 16:58:48 877

原创 innodb存储引擎的体系结构

Innodb存储引擎有多个内存块,组成了一个内存池,负责:       (1)维护所有进程/线程需要访问的多个内部数据结构,       (2)缓存磁盘上的数据,方便快速的读取,同时对磁盘文件的数据修改之前在这里缓存,       (3)重做日志缓冲     后台线程:  后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据,此外将已修改的数据文

2016-04-06 21:27:11 1427

原创 mysql数据库各存储引擎比较

mysql数据库区别于其他数据库的最重要的一个特点是其插件式的表存储引擎,存储引擎是基于表的,而不是数据库InnoDB存储引擎:       支持事务,其设计目标主要面向在线事务处理(OLTP)的应用,其特点是行锁设计、支持外键、并支持类似于oracle的非锁定读,即默认读取操作不会产生锁,其将数据放在一个逻辑的表空间中,此外,InnoDB存储引擎支持用裸设备用来建立其表空间,所谓裸设备即

2016-04-05 16:49:02 3259

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除