摘要: 今天看到一则小笑话,分享给大家。一对情侣甜蜜的在公园中依偎着,男的看到女的的头发如此柔顺,便忍不住偷摸了一下,女的娇滴滴的说:“唉呀!讨厌啦!”男的听了心更痒,于是又偷摸了一下,女的又说:“嗯,不要啦!”男的一听,心都要飞起来了,又再摸了一下,突然那女的站起来,粗暴的说道:“不要摸了!我的假发都快掉了!!!Java注释前面我们讲了下Java的运行机制及JDK的安装配置等相关操作,今天我们先从Java的注释开始。Java注释对程序本身没有影响,主要是开发者提供一些辅助信息来更好的理解。首先,Java的注释分三种:单行、多行以及文档注释。单行://后面的内容就是单行注释;多行:/* 中间部分 就是 阅读全文
posted @ 2013-09-21 22:02 JAVE_LOVER 阅读(287) 评论(0) 推荐(0)
摘要: 俗话说:“十五的月亮十六圆”。那学习是不是也是如此呢?如果把月亮看成是我们的愿望,那十五便是我们所处的“高原期”,坚持迈过这个坎,我相信你的愿望终究会现实的。记得马云曾说:今天很残酷,明天更残酷,后天很美好,但绝大部分人是死在明天晚上,所以每个人不要放弃今天。是的,我们不应该放弃今天,因为每个脚印都值得期待,每一次机会都值得尝试。不扯了,还是步入正题吧!Java的运行机制:Java源程序经过编译器编译成平台无关的字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码发送给特定平台的解释器,解释器将其翻译成相应平台上的机器码,然后运行在该平台上,又由于运行时依然保留了解释这样就保证了Jav 阅读全文
posted @ 2013-09-21 00:52 JAVE_LOVER 阅读(196) 评论(0) 推荐(0)
摘要: 快速排序 快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。大概算法是先找到某一元素的确切位置,再把该元素前后分成两半,没找到就移动,找到就赋值!具体做法是先移H,左边找到比val大的就赋值,右边找到比它小的就赋值!L和H赋值(L指向第一个元素,H指向最后一个元素,val存放第一个元素的值)。一旦赋值完就不移动!L和H重合了就不需要找了。只要记住一点就行了:左边找比关键字(val)大的就赋值(没找 阅读全文
posted @ 2013-07-23 15:14 JAVE_LOVER 阅读(165) 评论(0) 推荐(0)
摘要: 树 树可以简单理解为是由节点和边(存放指针域,指向下一个结点的地址)组成,每个节点只有一个父节点(根节点除外),但可以有多个子节点。树只有一个称为根的节点,树有若干个子树,且这些子树本身也是一棵树。树里面有很多专业术语,常用的有:深度(从根节点到最底层结点的层数,根节点是第一层),叶子节点(没有子节点的节点),非叶子节点(也叫非终端节点,含有子节点),度(某个节点含有子节点的个数,树的都按节点的最大度算),节点的层次(根作为第1层,根的子节点作为第2层,以此类推到该节点的层数)。树的分类分为一般树(任何一个节点的子节点的个数都不受限制);二叉树(有序):任何一个节点的子节点的个数最多两个,且子 阅读全文
posted @ 2013-07-22 22:37 JAVE_LOVER 阅读(176) 评论(0) 推荐(0)
摘要: 递归 递归一个函数直接或间接调用自己的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。递归要满足3个条件:一是递归必须得有一个明确的中止条件,要不然就很可能陷入死递归;二是递归函数所处理数据(或问题)的规模必须在递减,n个问题的解决依赖于n-1个问题的解决;三是这个转化必须是可解的。函数的调用机制当在一个函数的运行期间调用另一个函数时,在运行被调函数之前,系统需要完成三件事:a).将所有的实际参数,返回地址(下一条语句的地址)等信息传递给被调函数保存;b).为被调函数的局部变量(也包括形参)分配存储空间;c).将控制权限转移到被调函数的入口;从被调函数返回 阅读全文
posted @ 2013-07-22 14:34 JAVE_LOVER 阅读(213) 评论(0) 推荐(0)
摘要: 循环队列 队列通常分为两类:一是动态链式队列(其核心思想为链表,只是少了链表的一些功能),二是静态(顺序)队列(其核心是用数组实现,准确一点讲是由向量空间来实现,向量空间好比是开辟的一块内存,由我们的指针来指向其地址)。顺序队列实际上是运算受限的顺序表,由于队列的队头和队尾的位置是变化的,通常设置两个指针front和rear分别指示队头元素和队尾元素在向量空间中的位置,它们的初值在队列初始化时均应置为0。由于入队和出队操作中,头尾指针只增加不减小,致使被删元素的空间永远无法重新利用。当队列中实际的元素个数远远小于向量空间的规模时,也可能由于尾指针已超越向量空间的上界而不能做入队操作。这种“假上 阅读全文
posted @ 2013-07-21 13:35 JAVE_LOVER 阅读(258) 评论(0) 推荐(0)
摘要: 队列 队列(Queue)是只允许在一端(队尾rear)进行插入,而在另一端(队头front)进行删除的运算受限的线性表。它是一种可以实现“先进先出”(FIFO)的存储结构。队列在具体应用中通常用链表或者数组来实现,因此我们也常常将队列分为静态队列(数组队列),链式队列(主要以链表方式进行操作)。当队列中没有元素时,我们称之为空队列。一般队列的存储结构是顺序存储,当队列的存储结构是链式存储结构(即队列中每个元素都包含一个指向其后继的指针,最后一个指针元素也就是尾结点的指针域为NULL)时,就是链式队列了。和栈不同,队列通常需要对其两端进行操作,而栈一般只需对通过栈顶指针进行操作即可。对链式队列的 阅读全文
posted @ 2013-07-20 18:09 JAVE_LOVER 阅读(431) 评论(0) 推荐(0)
摘要: 栈的定义和分类 栈是我们线性结构中的一种常见应用。在函数调用、内存分配等也常常跟栈打交道,栈可以简单的理解为是一种可以实现“先进后出”的存储结构。栈又分为静态栈和动态栈。静态栈以类似于数组方式存放,而动态栈以类似于链表的方式存放。栈区(Stack)和堆区(heap) 栈区主要用于存放局部变量、定义的形参,在定义时局部变量或形参时由系统自动分配,在函数结束时由系统自动回收存储单元。 堆区主要通过new(常用于C++、Java中),malloc(用于C中)等动态开辟的存储块,函数结束时需要我们通过delete(c++中)、free(c中)手动释放举例说明:void f(int n){ int m. 阅读全文
posted @ 2013-07-19 23:55 JAVE_LOVER 阅读(245) 评论(0) 推荐(0)
摘要: 结点的操作由于链表是n个离散结点彼此通过指针相连,所以对链表的相关操作主要通过头指针(存放了头结点的地址)对结点进行操作来实现。 1.如何将q所指向的结点插入到p所指向结点的后面? 有两个方法 第一种: 采用临时变量 r=p->pNext;//用r保存p所指向结点的下一个结点地址 p->pNext=q;//此时p的指针域指向q所指的结点的地址 q->pNext=r; 第二种:不采用临时变量q-pNext=p->pNext;//让p和q所指向结点的指针域指向后面的同一个结点 p-pNext=q;//再让p的指针域指向q结点 2.如何删除一个节点(思路:用一个临时变量r来保 阅读全文
posted @ 2013-07-19 00:43 JAVE_LOVER 阅读(159) 评论(0) 推荐(0)
摘要: 前言 链表是数据结构中非常重要的一种线性结构,它在线性结构中是离散存储的。在讲链表之前,先谈下typedef(为数据类型取别名)的用法,因为typedef在定义结构体时经常用到,可以起到很好的简化数据类型书写的作用。实例说明:#includetypedef struct Student{ int sno;//学号 char name[20];//姓名}*PST,ST;//PST代表了struct Student *,ST代表了struct Student,即分别为其数据类型取别名int main(){ ST s={1001,"张三"}; PST pst=&s; pr 阅读全文
posted @ 2013-07-18 10:58 JAVE_LOVER 阅读(220) 评论(0) 推荐(0)