自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

理工科的杜小甫的博客

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

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

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

#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 1323

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

#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 2131

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

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

2016-06-22 10:27:15 838

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

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

2016-06-22 09:10:21 486

原创 线性表的基本操作

借助数组来描述顺序表。除了用数组来存储线性表的元素之外,顺序表还应该有表示线性表的长度属性,所以用结构类型来定义顺序表类型。#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 541

原创 空间复杂度

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

2016-06-21 16:17:51 1371

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

#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 4507

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

#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 3614

原创 单链表的插入(完整版程序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 6480 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 4924

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

#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 1966 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 8843

原创 创建单链表

#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 362

原创 typedef

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

2016-06-19 21:54:28 1391

原创 冒泡排序(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 363

原创 冒泡排序(c语言实现)

#include<stdio.h>#include<stdlib.h>void maopao(int arr[]){int length,i,j;int temp;length = sizeof(arr);for(i = 0;i<length;i++){ for(j = 0;j<length-i;j++) { if(arr[j]>arr[j + 1]) {

2016-06-19 20:25:59 554

原创 Linux和Windows的区别

从发展的背景来看,Linux与其他操作系统的区别是。Linux是从一个比较成熟的操作系统发展而来的,而其他操作系统,如Windows NT等,都是自成体系,无对应的相依托的操作系统。Windows和Linux一样是完全多任务操作系统,它们支持同样的用户接口、网络和安全性。但是,Linux和Windows的真正区别在于,linux事实上是UNIX的一种版本,而且来自UNIX的贡献非常巨大,在Itern

2016-06-19 18:55:18 1014

翻译 GEF原理及实现系列(八、选项板)

关键字: palette 选项板提供了用户选择模型元素,并提供相应的机制把模型和视图加入图形编辑器的能力。1.选项板(PaletteRoot)的功能GEF是一个图形编辑框架,它的主编辑区域是一个图形的视图(类似与JFace的Viewer),另外,用户还可以选择选项板上相应的模型,把选择的模型对应的视图加入到图形编辑区域进行编辑。在GEF中,图形编辑器实现类的getPaletteRoot方法将返回

2016-06-19 13:22:28 1409

翻译 GEF原理及实现系列(七、模型同步)

关键字: 同步 为了保证数据和展现的同步,必须要有一种消息通知机制,当模型被修改时通知相应的视图进行更新,下面将介绍如何实现这种消息机制。1.模型同步的功能模型是GEF中实体,当模型的属性被修改后,控制器会监听到模型属性改变的事件,然后通知视图进行更新,模型和视图之间没有直接的联系,如下图:要通过事件的通知机制获得模型同步的步骤如下:(1)模型中包含注册监听器的机制,本文范例是通过Propert

2016-06-19 13:19:45 919

翻译 GEF原理及实现系列(六、命令)

关键字: commands 为了提高代码的重用性,以及实现GEF编辑器的功能,GEF采用命令模式提供了对模型的操作方式。1.命令(Commands)的功能在EditPolicies中新建了命令,如果返回的命令不为空,GEF框架会执行命令,对模型进行相应的修改。Command是GEF中的一个抽象类,主要实现了如下的几个方法: (1)execute:这是命令的执行方法,当请求结束并获得Com

2016-06-19 13:17:41 978

翻译 GEF原理及实现系列(五、请求和编辑策略)

关键字: policies 请求和编辑策略是GEF框架中减轻控制器的负担、减小代码耦合度而实现的一种解决方案。1.请求和编辑策略(Request and EditPolicies)请求和编辑策略对初学者来说是比较难理解的部分,但正是因为这种机制才使得GEF框架功能强大,而且非常灵活。在EditPart中,可以通过设置不同的编辑策略(EditPolicies)来处理不同的请求,这样,一方面,可以把

2016-06-19 13:16:49 998

翻译 GEF原理及实现系列(四、控制器)

关键字: gef控制器 控制器是GEF框架的核心,它负责模型和视图之间的通信。1.控制器的功能在GEF的MVC结构里,控制器是模型与视图之间的桥梁,也是整个GEF的核心,它不仅要监听模型的变化,当用户编辑视图时,还要把编辑结果反应到模型上。 在GEF中,控制器是由一组EditPart对象共同组成的,每一个模型对象都对应一个EditPart对象。应用程序中需要有一个EditPartFactory对

2016-06-19 13:15:27 1142

翻译 GEF原理及实现系列(三、视图)

GEF视图通常利用Draw2d图形(IFigure)作为表现方式,用户可以通过Draw2d的功能实现图形的展示、布局及图形的编辑。1.视图的功能GEF的视图可以有很多种,GEF目前提供了图形(GraphicalViewer)和树状(TreeViewer)这两种,前者利用Draw2D图形 (IFigure)作为表现方式,多用于编辑区域,后者则多用于实现大纲展示。视图的任务同样繁重,除了模型的显示功能以

2016-06-19 13:14:01 1106

翻译 GEF原理及实现系列(二、模型)

GEF的模型只与控制器打交道,而不知道任何与视图有关的东西。 1.模型的功能 在GEF框架中,模型(Model)是非常简单的一部分,用户可把模型理解成一个简单的可持久化的实体。但为了能让控制器知道模型的变化,应该把控制器作为事件监听者注册在模型中,当模型发生变化时,就触发相应的事件给控制器,后者负责通知各个视图进行更新。 2.模型的实现 典型的模型对象会包含PropertyC

2016-06-19 13:11:49 882

翻译 GEF原理及实现系列(一、GEF概述)

GEF(Graphical Editor Framework)是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。 本系列介绍GEF中的几个基本概念,包括如下部分: 1、GEF概述 2、模型(Model) 3、视图(View) 4、控制器(Control) 5、请求和编辑策略(Request and EditPolicies) 6、命令(commands

2016-06-19 13:08:49 4481

原创 const和#define的不同以及 const修饰指针的几种情况

C++语言中可以用const定义常量,也可以用#define定义常量,但是前者比后者有更多的优点。 1、const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换中可能会产生意想不到的错误(边际效应)。 2、有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。在c++程序中只使用const常量

2016-06-18 15:46:30 602

原创 华为机试题:选秀节目打分

1、选秀节目打分,分为专家评委和大众评委, 2、score[] 数组里面存储每个评委打的分数, 3、judge_type[] 里存储与 score[] 数组对应的评委类别, 4、judge_type[i] == 1,表示专家评委, 5、judge_type[i] == 2,表示大众评委,n表示评委总数。 6、 打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分

2016-06-18 12:51:35 531

原创 (x&y)+((x^y)>>1)

对于位运算求两个数的平均值问题,(整形数据) int average(int x,int y) { return ( (x&y) + ( (x^y)>>1 ) ); } 给出两个整数,求出结果。 刚开始看到这道题的做法就是x和y转换为二进制,然后计算出结果。在没有办法的情况下这样做也可以得出结果。跟你想象的一点不差,这里确实有捷径。将a和b拆成两部分的平均值相加:a、b对应位相同部分,

2016-06-18 10:28:13 1630

原创 华为机试-删除字符串中所有给定的子串

这是用c语言实现的,代码经过编译,测试通过。 这个程序主要用到对指针的操作,以及memset ,memcpy的用法;关于这两个函数的用法,前一篇文章中已经给出。 我在编程时遇到的问题和出现的错误在程序后给出#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <string.h>int delete_sub_st

2016-06-17 20:53:54 611

原创 memset,memcpy,strcpy的区别

一.函数原型 strcpy extern char *strcpy(char *dest,char *src);功能:把src所指由NULL结束的字符串复制到dest所指的数组中 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针memcpy extern void *memcpy(void *dest,void *sr

2016-06-17 20:10:09 313

原创 回文判断

把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环叫做回文,也叫回环。例如 adfgfda#include<stdio.h>#include<string.h>void func(char *p){ char *tmp; tmp = p; while(*p) { p++; } while(*tmp) {

2016-06-15 22:11:53 368

原创 将字符串中的所有字母都替换成该字母的下一个字母

题目很简单,但是有很多细节,我第一次编的时候只考虑到当字符串中的某个字符为‘z’或’Z’时,要将其转化为’a’或‘A’; 第一次的程序如下,编译运行通过#include<stdio.h>#include<string.h>void func(char *p){ while(*p!=NULL) { if(*p=='z'| *p=='Z') {

2016-06-15 21:50:05 11036

转载 插件平台的类加载机制

作为一个插件平台,除了要解决在运行时插件的交互问题外,还需要解决一个非常重要的问题——类加载。原因在于:(1)类加载机制可以绕过默认类型加载器按需自动加载每一个插件的所有类型;(2)插件具备独立性,即一个插件的运行不能对其它插件和插件内核平台产生影响,这使得类加载机制必须维护每一个插件的类型;(3)每一个插件可能会引用同一个Class的不同版本,这要求类加载机制必须能够加载多个版本的同一个类并为每一

2016-06-14 19:44:29 331

原创 Eclispe菜单

Eclipse 查看的菜单栏通常包含以下几个菜单: File 菜单 Edit 菜单 Navigate 菜单 Search 菜单 Project 菜单 Run 菜单 Window 菜单 Help 菜单 Eclipse 菜单 通过 Eclipse 插件你可以添加新的菜单和菜单项。 菜单描述 菜单名 描述 File File 菜单运行你打开文件,关闭编辑器,保存编辑的内容,

2016-06-13 16:00:22 577

原创 JavaCompiler

一、使用JavaCompiler接口来编译Java源程式   使用Java API来编译Java源程式有非常多方法,目前让我们来看一种最简单的方法,通过JavaCompiler进行编译。   我们能通过ToolProvider类的静态方法getSystemJavaCompiler来得到一个JavaCompiler接口的实例。   JavaCompiler compiler = ToolProv

2016-06-13 15:17:52 7015 1

转载 JFace TreeViewer使用 及内容提供器(IStructuredContentProvider)

内容提供器(IStructuredContentProvider)TableViewer中的内容管理器比较简单,用户可以通过实现getElements返回表格的所有数据。getElements定义为“public Object[] getElements(Object inputElement)”,返回Object[]对象数组,其中数组中每一个对象代表表格的一列。当TableViewer输入数据后,

2016-06-13 12:38:00 2073

原创 Java中instanceof

今天在学习一段代码的时候,看到以下   [java] view plaincopy   if(colleague instanceof RentHouse){   // …   }   其中包含的关键字instanceof自己是第一次看到,查阅有关资料后,自己知道了它的用法,现在来写一篇博客谈一下吧。   二、正文:   经过百度,我们可以知道:instanceof是Java的一个二元

2016-06-13 12:31:58 243

原创 Eclipse开发经典教程之TreeViewer组件

TreeViewer构建步骤 TreeViewer中主要通过内容提供器(ITreeContentProvider)和标签提供器 (ILabelProvider)组织树节点的内容和显示的信息。TreeViewer的构建步骤如下。 1. 创建TreeViewer对象,例如“TreeViewer tv = new TreeViewer(composite);”。 2. 设定内容管理器,例如“tv.s

2016-06-13 12:11:48 428

原创 C++语言笔试题目写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7......+n&字符指针、浮点数指针、以及函数指针占用的内存等

写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7……+n。 long fn(long n) { if(n <= 0) { exit(1); } return (n / 2) * (-1);

2016-06-13 09:55:53 3695

原创 C++语言笔试题目 所有的运算符都能重载吗&不用if结构,找出两个变量之间的最大值等

所有的运算符都能重载吗不能被重载的运算符 在 C++运算符集合中,有一些运算符是不允许被重载的。这种限制是出于安全方面的考虑,可防止错误和混乱。 (1)不能改变 C++内部数据类型(如 int,float 等)的运算符。 (2)不能重载‘.’,因为‘.’在类中对任何成员都有意义,已经成为标准用法。 (3)不能重载目前 C++运算符集合中没有的符号,如#,@,$等。原因有两点,一是难以理解

2016-06-13 09:06:50 2424

空空如也

空空如也

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

TA关注的人

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