自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

理工科的杜小甫的博客

博客用于分享求职前的历程

  • 博客(97)
  • 收藏
  • 关注

原创 串定位运算(完整程序)

在一个字符串中定位子字符串的位置。#include<stdio.h>#include<string.h>#include<assert.h>int locate(const char *mainString,const char *childString){ int i,j,k; int m = strlen(mainString); int n = strlen(ch

2016-06-30 19:52:11 1207

原创 整数转化为字符串数(完整程序)

#include<stdio.h>#include<stdlib.h>#include<string.h>void main(void){ int num = 12345,i = 0, j = 0; char temp[7],str[7]; while(num) { temp[i] = num%10 + '0'; num = num/

2016-06-30 18:45:42 372

原创 希尔排序(ShellSort程序完整版)

#include<stdlib.h>#include<stdio.h>void ShellSort(int *data,int left,int right){ int len = right - left + 1; int i; int d = len; while(d > 1) { d = (d + 1)/2; for

2016-06-30 17:36:31 899

转载 Java堆和栈的区别

Java堆和栈的区别 栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和 multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先

2016-06-25 12:09:28 231

转载 java的三大特性——封装

三大特性之—封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节(当然也无从知道),但可以

2016-06-25 09:56:42 284

转载 Java并发(1)-基础概念

这是将是一系列关于Java并发基础知识的文章。事实上,主要是《实战Java高并发程序设计》的读书笔记和网络资料以及对它们的整理。相关概念 1.同步Synchronous和异步Asynchronous 同步和异步通常是用来形容一次方法调用。所谓同步,就是在发出一个”调用”时,在没有得到结果之前,该”调用”就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由”调用者”主动等待这个”调用”的结

2016-06-25 09:37:38 1367

转载 Java堆内存

Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。堆的内存模型大致为:

2016-06-25 09:14:02 236

翻译 线程模型的综述

本文首先介绍了一些线程基础,比如并发、并行、内存分配、系统调用、POSIX线程。接着通过strace分析了线程与进程的区别。最后以Android、Golang等线程模型进行了分析。基础 1. 什么是并发(Concurrent),什么是并行(Parallels)? 并发指同时进行多个计算任务。 并行指通过切换时间片模拟进行多个计算任务。 OS下的内存分配、用户区与内核区 在32位的Linux操

2016-06-25 09:07:03 311

翻译 开源Java EE框架 JBoss Seam 详细介绍

摘要:JBoss Seam是“Java EE 5.0的一个轻量级的框架”。这是什么意思?难道Java EE(Enterprise Edition) 5.0本身不是一套“框架吗”?为什么在官方规范之外,还需要另外一个框架?好吧,我们就将seam看作是本应该被包括在Java EE 5.0中的一个“遗漏的框架”吧。它在Java EE 5.0框架的上层,为所有的在企业Web应用中的组件提供了一个统一的、易于

2016-06-25 08:24:09 6810

原创 求一个数组中满足2^N的个数

#include<stdio.h>#include<stdlib.h>#include<string.h>int func(int a[],int length){ int i; int count; count = 0; for(i = 0;i<length;i++) { if(0==(a[i]&(a[i] - 1)))

2016-06-24 20:47:49 383

原创 Java开源UML建模

ArgoUML 使用java编写的开源UML产品,功能比较全。最受欢迎的UML建模工具。 Alma Alma是一个软件建模分析的工作平台,它读取几种不同的源代码,帮你设计面向对像的模型,修改结构和源代码,输出新的源代码、文档和图表。UMLet UMLet是一个开放源代码轻量级UML建模工具。UMLet能够让你快速建模,并且能够导出各种格式SVG, JPG, PDF and LaTeX-frien

2016-06-24 17:58:18 4937

原创 连续字符统计(如AABBBCDD, A2B3C1D2)

#include<stdio.h>#include<stdlib.h>#include<string.h>void func(char *p,int length){ //char *s; //p = s; //q = s;//s = (char*)malloc(length*sizeof(char*));//memcpy(s,p,length*sizeof(char*

2016-06-24 15:46:22 824

翻译 JDBC介绍(详细版)

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数 据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易 的事。

2016-06-24 14:10:45 15103 2

原创 求一个二维数组中每列的最小值

#include<stdio.h>#include<stdlib.h>void fun(int a[3][4],int row,int column){ int i,j,k; int m[4]; for(i = 0;i<column;i++) { m[i] = a[0][i]; //int temp = 0; for(j = 0;j<r

2016-06-24 12:14:01 9019 2

翻译 Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)

目前在Java中用于解析XML的技术很多,主流的有DOM、SAX、JDOM、DOM4j,下文主要介绍这4种解析XML文档技术的使用、优缺点及性能测试。一、【基础知识——扫盲】sax、dom是两种对xml文档进行解析的方法(没有具体实现,只是接口),所以只有它们是无法解析xml文档的;jaxp只是api,它进一步封装了sax、dom两种接口,并且提供了DomcumentBuilderFactory/D

2016-06-24 10:16:51 1378

翻译 Java解析XML

用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API (Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM。Sun公司提供了Java API for XML Parsing(JAXP)接口来使用SAX和DOM,通过JAXP,我们可以使用任何与JAXP兼容的XML解析器。 JAXP接口包含了三个

2016-06-24 10:13:05 383

翻译 Java开源xml操作类库

Xerces Xerces是由Apache组织所推动的一项XML文档解析开源项目,它目前有多种语言版本包括JAVA、C++、PERL、COM等。JDOM JDOM是一种面向Java的读、写和操作XML文档的API。JDOM 与现行的SAX 和DOM标准兼容,为Java 程序员提供了一个简单、轻量的XML文档操作方法。由于JDOM是专门为Java 程序员开发的,所以采用许多Java语言的优秀特性,比如

2016-06-24 10:08:19 1790

原创 将一个“1234”的字符串转化为1234整形

首先要介绍的就是字符’0’到‘9’转化为数字0~9就是字符去减‘0’得到的就是数字的值。 其区别就是在于ASCII值不同,计算机内部数值0的ASCII值是0,字符0的ASCII值是0x30(10进制是48)程序如下:#include<stdio.h>#include<stdlib.h>int func(char *s){ //int i = 0; int sum = 0; while(

2016-06-23 21:05:30 22244

原创 栈的链式存储表示

1 栈的链式表示 栈的链式存储结构称为链栈,是运算受限的单链表。其插入和删除操作只能在表头位置上进行。因此,链栈没有必要像单链表那样附加头结点,栈顶指针top就是链表的头指针。图3-4是栈的链式存储表示形式。链栈的结点类型说明如下:typedef struct Stack_Node{ ElemType data ;struct Stack_Node *next ;}

2016-06-23 17:34:16 706

原创 栈的动态顺序存储表示

采用动态一维数组来存储栈。所谓动态,指的是栈的大小可以根据需要增加。 ◆ 用bottom表示栈底指针,栈底固定不变的;栈顶则随着进栈和退栈操作而变化。用top(称为栈顶指针)指示当前栈顶位置。 ◆ 用top=bottom作为栈空的标记,每次top指向栈顶数组中的下一个存储位置。 ◆ 结点进栈:首先将数据元素保存到栈顶(top所指的当前位置),然后执行top加1,使top指向栈顶的下一个存储位置

2016-06-23 17:30:48 2307

原创 栈的静态顺序存储表示

采用静态一维数组来存储栈。 栈底固定不变的,而栈顶则随着进栈和退栈操作变化的, ◆ 栈底固定不变的;栈顶则随着进栈和退栈操作而变化,用一个整型变量top(称为栈顶指针)来指示当前栈顶位置。 ◆ 用top=0表示栈空的初始状态,每次top指向栈顶在数组中的存储位置。 ◆ 结点进栈:首先执行top加1,使top指向新的栈顶位置,然后将数据元素保存到栈顶(top所指的当前位置)。 ◆

2016-06-23 17:16:51 985

原创 栈的应用之数制转换

十进制整数N向其它进制数d(二、八、十六)的转换是计算机实现计算的基本问题。转换法则:该转换法则对应于一个简单算法原理: n=(n div d)*d+n mod d 其中:div为整除运算,mod为求余运算 例如 (1348)10= (2504)8,其运算过程如下: n n div 8 n mod 8 1348

2016-06-23 17:09:20 1105

原创 判断手机号码是否合法(完整实现程序)

问题描述:我国大陆运营商的手机号码标准格式为:国家码+手机号码,例如:8613912345678。特点如下:1、 长度13位;2、 以86的国家码打头;3、 手机号码的每一位都是数字。请实现手机号码合法性判断的函数要求:1) 如果手机号码合法,返回0;2) 如果手机号码长度不合法,返回13) 如果手机号码中包含非数字的字符,返回2;4) 如果手机号码不是以86打头的,返回3;【注】除成

2016-06-23 15:58:35 7550

原创 约瑟夫环(c语言程序完整版)

约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct Node{

2016-06-23 12:16:49 49454 5

原创 线性表(顺序表)的逆置(完整程序)

#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR -1#define MAX_SIZE 100typedef int Status;typedef int ElemType;typedef struct sqlist{ ElemType Elem_array[MAX_SIZE]; int length;

2016-06-22 15:31:40 13800

原创 线性表的删除及查找定位删除(完整程序)

#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR -1#define MAX_SIZE 100typedef int Status;typedef int ElemType;typedef struct sqlist{ ElemType Elem_array[MAX_SIZE]; int length;

2016-06-22 15:06:18 1300

原创 线性表的插入和创建(完整程序)

#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR -1#define MAX_SIZE 100typedef int Status;typedef int ElemType;typedef struct sqlist{ ElemType Elem_array[MAX_SIZE]; int length;

2016-06-22 12:25:32 2114

原创 计算机网络学习笔记二

网络体系结构简单的定义就是计算机网络的分层结构、各层协议、功能和层间借口的几何。几个易混淆的概念: 1、服务数据单元(Service Data Unit,SDU):为完成用户所要求的功能而应传送的数据,第n层的服务数据单元记为n-SDU。 2、协议控制信息(PCI,protocol control information):控制协议操作的信息。第n层的协议控制信息记为n-PCI。 3、协议数据

2016-06-22 10:27:15 776

原创 计算机网络学习笔记一

概念:计算机网络是用通信线路将分散在不同地点并具有独立功能的多台计算机系统进行互连,按照网络协议实现远程信息处理,并实现资源共享的信息系统。这里强调计算机网络是在协议的控制之下,实现计算机之间的数据通信,网络协议是区别计算机网络和一般计算机互连系统的重要标志。基本要素: 1、若干个主机:至少有两个具有独立操作系统的计算机,且它们之间有相互共享某种资源的需求。 2、一个通信子网:两个独立的计算机之

2016-06-22 09:10:21 478

原创 线性表的基本操作

借助数组来描述顺序表。除了用数组来存储线性表的元素之外,顺序表还应该有表示线性表的长度属性,所以用结构类型来定义顺序表类型。#define OK 1#define ERROR -1#define MAX_SIZE 100typedef int Status ;typedef int ElemType ; typedef struct sqlist{ Ele

2016-06-21 16:42:13 522

原创 空间复杂度

空间复杂度(Space complexity) :是指算法编写成程序后,在计算机中运行时所需存储空间大小的度量。记作: S(n)=O(f(n)) 其中: n为问题的规模(或大小) 该存储空间一般包括三个方面: 指令常数变量所占用的存储空间; 输入数据所占用的存储空间; 辅助(存储)空间。 一般地,算法的空间复杂度指的是辅助空间。 一维数组a[n]: 空间复

2016-06-21 16:17:51 1302

原创 素数的判断 (完整版程序)

#include<stdio.h>#include<math.h>void prime(int n){ int i = 2; while((n%i)!=0&&i*1.0<sqrt(n)) i++; if(i*1.0>sqrt(n)) { printf("%d是一个素数\n",n); } else pri

2016-06-21 16:14:51 4453

原创 单链表插入(完整版程序 在表头和表尾插入算法)

#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#define N 3typedef struct node{ char name[20]; struct node *next;}ListNode;ListNode *creat(int n){ ListNode *p

2016-06-21 15:36:16 3594

原创 单链表的插入(完整版程序c语言实现,以字符串为数据)

这里的插入主要是针对有序表中插入一个数据,插入后仍然为一个有序表。接下来会给出在链表尾插入,和在链表投插入怎么做#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#define N 3typedef struct node{ char name[20]; struct node *

2016-06-21 14:23:39 6421 1

原创 单链表的查找(完整程序 以字符串为数据)

#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#define N 3typedef struct node{ char name[20]; struct node *next;}stud;stud *creat(int n){ stud *p,*h,*s;

2016-06-20 17:28:11 4886

原创 单链表的逆置(完整程序加思路分析)

#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define N 3typedef struct node{ char name[20]; struct node *next;}stud;stud *creat(int n){ stud *p,*h,*s; int i; if((h=(s

2016-06-20 16:44:39 1917 2

原创 创建单链表(字符串型)并输出

#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define N 3typedef struct node{ char name[20]; struct node *link;}stud;stud *creat(int n){ stud *p,*h,*s; int i; if((h=(s

2016-06-19 22:32:15 8786

原创 创建单链表

#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define N 10typedef struct node{ char name[20]; struct node *link;}stud;stud *creat(int n){ stud *p,*h,*s; int i; if((h=(

2016-06-19 22:24:17 328

原创 typedef

1、基本概念typedef 为C语言中的关键字,作用是为一个数据类型定义一个新的数据类型,包括内部数据类型(如int,char等)和用户自定义类型(如struct等)。 编程中使用typedef的目的:一是给变量一个易记且意义明确的新名字,二是简化一些类型比较复杂的类型声明。 例如:typedef int INTEGER; typedef Number_count

2016-06-19 21:54:28 1341

原创 冒泡排序(c++实现)

#include<iostream>using namespace std;void maopao(int *arr){int length,i,j;int temp;length = sizeof(arr);cout<<length;for(i = 0;i<length-1;i++){ for(j = 0;j<length-i-1;j++) { if(arr[j]>

2016-06-19 21:09:13 335

空空如也

空空如也

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

TA关注的人

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