- 浏览: 75545 次
- 性别:
- 来自: 长沙
最新评论
-
galwaycat00:
看着这么眼熟,是不是郝斌老师的代码?你加上了注释,不错
数据结构之链表(C实现) -
zhzhhghd:
...
基于Android的简单登录系统 -
lpsky:
同志,你这不算动态数组啊,一开始就指定了最大元素的个数了。
C语言中动态数组操作实践 -
xiaoshan5634:
初学Android,学习。。。
基于Android的简单登录系统 -
flyfy1:
"管自己以身作则,管团队将心比心,管业务身先士卒&q ...
2012年2月至3月总结
文章列表
一、队列是什么
队列是一种可以实现“先进先出”的存储结构。其实,说简单点,队列就是排队,跟我们日常生活中到银行取钱排队,排队打饭在道理上是一样的。
队列通常可以分为两种类型: ①链式队列(由链表实现)。 ②静态队列(由数组实现),静态队列通常都必须是循环队列。 由于链式队列跟链表差不多,所以在这里只针对循环队列来说明并实践。 循环队列的两个参数: ①front,front指向队列的第一个元素。 ②rear,rear指向队列的最后一个有效元素的下一元素。 队列的两个基本操作:出队和入队。
二、队列的结构
...
数据结构中的栈是什么
举一个简单的例子:在往箱子里面放衣物的时候,放在最上面的衣物总是我们最后放上去的;而当我们从箱子里取出衣物的时候,总是最先拿出上面的。这就是现实生活中的栈。
准确的讲,栈就是一种可以实现“先进后出(或者叫后进先出)”的存储结构。
学过数据结构的人都知道:栈可以用两种方式来实现,一种方法是用数组实现栈,这种栈成为静态栈;另外一种方法是用链表实现栈,这种栈叫做动态栈。
栈中通常存放着程序的局部变量等。栈通常有出栈和入栈操作。
栈的结构
空栈的结构:【其实就是栈顶和栈顶都指向一个无用的头结点】
存有结点的栈结构:【栈顶指针指向栈顶结 ...
前言
最近在复习数据结构的相关知识,感觉在初学的时候还是有很多东西没有掌握,不过现在终于算是搞得比较有头绪了,所以就在写出来和大家一起分享!
什么是链表
简单的说,链表就是由多个结点离散分配,彼此通过指针相连,每个结点只有一个前驱结点和后继结点。首节点无前驱结点,为结点无后继结点的一种存储结构。
链表的结构
头结点:链表的第一个有效结点前面的结点,头结点并不存放有效数据,也就是数据域为空,加头结点的主要目的是为了方便链表的操作。
首节点:链表的第一个有效结点,结点包含数据域和指针域。
尾结点:尾结点的指针域为空。
头指针:指向头结点的指针变 ...
为什么写博客
之前写了写技术类的博客,虽然水平一般,但收获还是蛮大的。在我看来,写博客有可以有两个收获:
①把自己学习的知识和大家拿来分享,说不定还会有意外的收获。
②对自己阶段学习的总结,把自己学的东西,以文字的形式记录下来,当过了N长时间之后,再回头来看,也不失为妙。
不管是写博客,还是写日记,好处绝非这么多,有些东西后面才能领会到。
这次应该是第一次在ITeye上发表非技术博客。之前为什么不写呢?我想有这么几个原因:
①总觉得技术学到了就行,写博客多浪费时间,还不如多学点自己所谓有用的东西。
...
在C语言中,可以使用malloc函数进行动态数组的创建。所谓的动态数组是指可以由用户动态指定数组的大小,而不必一开始就把数组长度定死。
由于代码是在VS2010中运行的,刚开始保存源文件的时候,保存的是".c"格式,编译(在VS2010中为生成)时老是出错,提示bool标识符错误。查了好久,终于找到了原因,原来VS2010中不支持C99标准,而bool类型是在C99中才有的,所以编译的时候通不过。这种错误只要将源文件的".c"格式改为".cpp"格式就可以编译通过。
下面是源代码,里面有详细的注释 ...
在学习数据结构的时候,针对数组,有几种典型的排序算法,分别为冒泡排序、插入排序、选择排序和希尔排序,这几种排序算法也是比较常见的。下面是对这些排序算法的一些理解。
要很好的理解排序算法,我觉得最重要是掌握程序执行的流程,并且一个个地试数。试过几次数后,用到的排序算法也就难理解了。
冒泡排序
冒泡排序算法应该说是排序算法中最简单的。但能一次性的写对冒泡排序也是不容易的。冒泡排序最核心的策略就是每次找出最大值(或者最小值)并把其放入到数组的最末端(或者最前端),要排序的元素每次减少1个,以此不断执行,最后就会得到想要的结果。下面是其具体的代码实现:
...
初识通信
在网络世界里,最核心的是通信。互联网之所以为互联网,就是因为通过网络共享资源、发送消息,实现了将许多异构终端连接在一起的功能。在计算机网络的世界里,通信的关键是通过在有限区域内以共同的协议和标准屏蔽了硬件差异,实现了设备的互联互通。
通常我们自己写的通信程序一般都是运行在底层通信协议之上,我们通知定制自己的消息格式和类型,让它通过互联网传输,在接收端对自定义的消息格式进行解析。
通信一般都包括客户端和服务器端, 不管不管网络程序是采用C/S或B/S结构。在C/S结构中,客户端和服务器都要我们自己写;在B/S结构中,我们只需要写服务器,浏览器就是我们的客户端。这里只 ...
大约一个月的时间,我们的Java Web项目iGlobal BBS从最初的猜想,到最终的实现,最终的完成度可圈可点。
由于是边学边做,经历的时间比较长。在这期间,技术方面是从Servlet->JSP->AJAX->jQuery->MVC->EL->JSTL;我们的iGlobal BBS的版本,也从最初的简单登陆系统,一步一步的完善,到最终的自定义MVC版本。由于时间紧迫,完成的不是特别理想,之初假想的一些功能还是没能实现。
我们的iGlobal BBS项目大概经历了数据库设计、 网页设计+后台处理、MVC完善这几个阶段。经过这次自己参加到项目当中来, ...
在使用自定义MVC框架完成了一个比较简单的BBS的之后,打算研究一下SSH框架。这是自己在Eclipse下手动配置的一个简单的登陆系统,用的是Struct1.3.10框架。
手动配置流程(以登陆验证系统为例):
一、首先在Eclipse下创建一个动态Web项目,将下载好的struts1.3.10的压缩包解压之后的lib目录下的jar文件全部拷贝到对应的Web项目的WEB-INF下的lb目录下,此时在本项目的Web App Libraries可以看到我们引进去的包。WEB-INF用于存放一些驱动包。二、在WEB-INF目录下编写简单的login.jsp页面,body标签中的主要代码如下。
& ...
Hash简介
由于Hash结构继承了数组的高效查询和修改的特性,又继承了链表的高效的增删特性,使得其在查找和存储方面具有其他结构无法比拟的高效性,关于Hash算法的研究也从未中断。笔者主要就Java中封装的HashMap的具体实现过程来简单介绍一下HashMap。
说简单点,Hash结构(其实,准确的说,Hash应该是一种思想)就是通过为每一个对象分配多级索引来进行存储和处理数据的,而这些索引是通过一种叫做
这几天胡老师一直在讲关于设计模式的一些内容,自己也下去看了一些跟设计模式相关的书。根据自己的理解:所谓模式,就是一个模板,是经过前人总结的一个经验性的东西,而设计模式就是在设计方面的经验总结。现在大家普遍知道的是Gof总结出来的23种设计模式,这23种模式可以分为三个类别:创建型模式( 关于对象创建的模式)、结构型模式(关于对象的组成以及对象之间的依赖关系的模式)、行为型模式(关于对象行为的模式),这么多种设计模式有一个共同点,它们都是以对象为中心的,也就是以类为中心,这是值得注意的。如果按照一定的逻辑,比如说:按照对象的生命周期,从创建对象开始,再到对象之间的结构关系,最后到对象的使 ...
刚开始接触Android,做了一个简单的登录系统,实现的主要功能有:输入正确的用户名和密码后,点击登录按钮,就会进入另一个界面;如果用户名或密码不正确,则会弹出一个消息框。这种可视化界面在Android中称作Activity。
下面是具体的代码实现
AndroidLoginActivity(初始时显示的Activity)
package cn.yzz.AndroidLogin;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color ...
功能:简单的客户端和服务器互发信息。
服务器端:
import javax.swing.*;
import java.net.*;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
//服务器端
public class MyServer extends JFrame implements ActionListener{
JTextArea jta = null;
J ...
在对文件进行基本操作时,需要了解一些文件系统的基本常识,比如:
1.文件的全名包含文件的路径名和扩展名,通常单讲一个文件文件名时,是不带路径但带扩展名的文件名。
2.系统主要有目录类型的文件和真实文件以及虚拟内存文件等。同一目录下不能存在同名的目录和文件。
3.关于相对目录、绝对目录和当前目录。首先,相对路径是指不以路径分隔符开头的文件路径;其次,绝对路径是以根目录开头的路径;当前目录是指相对运行程序的目录算起的相对路径。
4.Window平台上的路径分隔符和名字分隔符分别为"\"和";",Linux平台上的路径分隔符和名字分隔符分别为&quo ...
Java中集合类在java.util.*包中。常用集合在系统中定义了三大接口。即 java.util.Set, java.util.List,java.util.Map。
1.set接口及其子类提供了一个无序、不重复的集合。Set接口常用的子类有 java.util.
HashSet、java.util.TreeSet。
2.List接口及其子类提供了一个有序可重复的集合。List接口常用的子类有java.util.Vector(是线程同步的)和java.util.ArrayList(基于数组实现的)。
3.Map接口及其子类提供了一个映射关系的集合数据结构。Map接口常用的子类有java.ut ...