自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 资源 (1)
  • 收藏
  • 关注

原创 无损压缩

对于照片一般采用无损压缩方法:【1】行程长度压缩:计算机中每个图片都包括很多像素的图像,这些像素而言比较密集并且比较单一,所以我们为了节省存储空间,将其中相同的像素采用单一的方式或者只填充一个像素来达到压缩的目的;【2】增量调制压缩:这种方式是利用了像素的相邻性特点来压缩,像素相邻比较密集,所以利用相邻来达到压缩的目的从而节省空间;【3】霍夫曼表压缩:计算出每个像素的画面的

2017-08-06 09:06:35 363

转载 编译和解释的区别是什么?

编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快; 而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的. 这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式) 一、低级语言与高级语言最初的计算机程

2017-08-06 08:57:10 430

原创 操作系统归纳

操作系统  总论1如何理解现代操作系统是依靠中断驱动的? 2 OS进入核心态的唯一途径是? 3系统调用与一般调用的区别? 4中断的分类。5中断的处理过程。6系统调用的过程。 7计算机I/O方式的变化:联机,脱机,假脱机(SPOOLing)8操作系统发展历程,单道,多道批处理,分时系统。每种的特征,尤其是批处理和分时系统在吞吐量,平均周转时间以及交互性的比较。

2016-06-17 09:16:50 598

原创 计算机网络归纳

1. 哪些协议是可靠地?那些不可靠?2.各种协议分别运行在什么环境? 3.PDU与SDU关系  4.几种编码方式 采样率 等计算问题 5. 频分复用 时分复用 波分复用 码分复用 的实质 (频分复用就是在相同的时间占用不同带宽,时分复用则是不同时间占用相同带宽,。。。。)6.停等协议 GBN与SR工作流程,重点是出错误的情况。  数据丢失 数据延时 确认帧丢失情况  发

2016-06-17 09:15:22 430

原创 题目1098:字母统计

题目描述:输入一行字符串,计算其中A-Z大写字母出现的次数输入:案例可能有多组,每个案例输入为一行字符串。输出:对每个案例按A-Z的顺序输出其中大写字母出现的次数。样例输入:DFJEIWFNQLEF0395823048+_+JDLSFJDLSJFKK样例输出:A:0B:0C:0D:3E:2F:5G:0H:

2016-04-09 09:23:24 380

原创 题目1089:数字反转

题目描述:    12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转。输入:    第一行一个正整数表示测试数据的个数n。    只有n行,每行两个正整数a和b(0输出:    如果满足题目的要求输出a+b的值,否则输出NO。样例输入:212

2016-04-09 09:14:30 628

原创 题目1101:计算表达式

题目描述:对于一个不存在括号的表达式进行计算输入:存在多种数据,每组数据一行,表达式不存在空格输出:输出结果样例输入:6/2+3+3*4样例输出:18#include int main(){ int i,j,k,a[100]; char x; while(scanf("%d",&k)

2016-04-06 21:31:26 442

原创 题目1009:二叉搜索树

#include #include #include using namespace std;const int maxn=1024+10;int a[maxn],b[maxn];char s[20],t[20];int n;void create(char str[],int arr[]){ int i,j; for(i=0;i<strlen(str);i++)

2016-03-29 13:15:19 307

原创 每周数据结构【5】:在二叉树中递归查找为data值的点

void Bintreefind(ChainBintree *bt,DATA data){ ChainBintree *p; if(bt==NULL{ return 0;} else{ if(bt->data==data)return bt;else{if(p==BintreeFind(bt->left,data){ re

2016-03-22 21:09:02 402

原创 用递归求数组最大值的位置

思想就是分割,直接上代码int MaxIndex2(int* A,int n) { if(n==1) return 0; int mid=n/2; int left=MaxIndex(A,mid); int right=MaxIndex(A+mid,n-mid);

2016-03-20 12:23:01 518

转载 Linux组件封装(五)一个生产者消费者问题示例

点击打开链接http://www.cnblogs.com/inevermore/p/4009719.html这里引用一个很好的生产者-消费者案例:具体思路参见链接生产者往缓冲区中放入产品、消费者取走产品。生产者和消费者指的可以是线程也可以是进程。生产者消费者问题的难点在于:为了缓冲区数据的安全性,一次只允许一个线程进入缓冲区,它就是所谓的临界资源。生产者

2016-03-20 12:15:45 375

原创 请求分页式管理方式的有效时间计算

操作系统中经常涉及到缺页中断,计算请求分页时间问题。通过前面的学习所总结的有效时间考虑因素:首先访问页面所在的位置【1】 访问的页在主存中,并且访问的页表也在快表中,那么有效时间=查找快表的时间+根据物理地址访问内存的时间;【2】访问的页在主存中,但是不在快表中,那么有效时间=查找快表的时间+查找页表的时间+修改快表的时间(也就是与查找访问快表时间一样)+物理地址访问内存时间;【3

2016-03-19 22:37:41 3024 1

原创 每周数据结构【4】递归算法:把B树的所有左右节点进行交换

void swap(BTtree b){ if(b){ swap(b->lchild); //递归交换左子树 swap(b->rchild); //递归交换右子树 temp=lb->lchild; //交换左右节点 l->child=r->child; r-child=temp;}}

2016-03-19 22:26:19 323

原创 linux c语言 计算函数执行时间

#include#include#includeint main(){ struct timeval tpstart,tpend; float timeuse; int i; gettimeofday(&tpstart,NULL); scanf("%d", &i); /*这里计算

2016-03-19 22:22:03 716

原创 快表原理

TLB - translation lookaside buffer快表,直译为旁路快表缓冲,也可以理解为页表缓冲,地址变换高速缓存。由于页表存放在主存中,因此程序每次访存至少需要两次:一次访存获取物理地址,第二次访存才获得数据。提高访存性能的关键在于依靠页表的访问局部性。当一个转换的虚拟页号被使用时,它可能在不久的将来再次被使用到,。TLB是一种高速缓存,内存管理硬件

2016-03-18 08:01:44 6667

原创 对于拷贝构造函数和赋值构造函数的理解

拷贝构造是确确实实构造一个新的对象,并给新对象的私有成员赋上参数对象的私有成员的值,新构造的对象和参数对象地址是不一样的,所以如果该类中有一个私有成员是指向堆中某一块内存,如果仅仅对该私有成员进行浅拷贝,那么会出现多个指针指向堆中同一块内存,这是会出现问题,如果那块内存被释放了,就会出现其他指针指向一块被释放的内存,出现未定义的值的问题,如果深拷贝,就不会出现问题,因为深拷贝,不会出现指向堆中同一

2016-03-17 12:25:41 273

原创 每周数据结构【3】:设计一个非递归的算法求二叉树高度

思路:用到非递归的思想,毫无疑问就是使用 树的层次遍历方法来做采用层次遍历算法,设置变量level记录当前的节点所在存数。设置变量level指向当前节点的最右边,每次遍历之后就和level进行比较,若二者相等,那么层数加1,并让level指向下一层的最右边节点,至少遍历完成。level就是二叉树高度int  BTdepth(Bitree T){   if(!T)          

2016-03-17 12:22:36 4261 1

原创 每周数据结构【2】:删除带头结点的含有x的值的节点

由于该单链表拥有头结点,所有思路很明确: 用尾插法(或者头插法)创建链表,再进行删除。直接上代码void del(Linklist &L, ElemType &x){ Lode *p=L->next,*r=L,*q; //用q来保存删除的节点,r是指向尾部节点while(p!=NULL){ if(p->data!=x){ r->next=p; //以下两句是

2016-03-17 12:10:25 447

原创 每周数据结构【1】:不带头结点删除所有值为x的节点

void Del(Linklist &L, ElemType X) //递归实现在单链表L中删除值为x的结点{ Lode *p; //p是指向要删除的节点 if(L==NULL) return ; if(L->data==x){ p=L; //删除*L,并让L指向下一个节点 L=L->next; fr

2016-03-17 12:02:04 921

原创 二叉树输出先序遍历的第k个节点

思路: 寻找第k个节点无非就是先序遍历一下void trave(BTNode *p,int k){ int n=0; if(P!=NULL){ ++n; if(k==n){ countdata<<endl; return ;}trave(p->lchild,k);trave(p->rchild,k);}}同样也可以用中序遍历和后序

2016-03-15 21:30:30 2684 5

原创 非递归实现树的后序遍历

前序遍历是通过一个stack,首先压入父亲结点,然后弹出父亲结点,并输出它的value,之后压人其右儿子,左儿子即可。然而后序遍历结点的访问顺序是:左儿子 -> 右儿子 -> 自己。那么一个结点需要两种情况下才能够输出:第一,它已经是叶子结点;第二,它不是叶子结点,但是它的儿子已经输出过。那么基于此我们只需要记录一下当前输出的结点即可。对于一个新的结点,如果它不是叶子结点,儿子也没有访问,那么就需

2016-03-15 21:26:11 1061

原创 BST判断

下面这种风格是最好的实现方式public boolean isValid(Node root) { return isValidBST(root, Integer.MIN_VALUE, Integer.MAX_VALUE);}private boolean isValidBST(Node node, int MIN, int MAX) { if(no

2016-03-14 19:03:22 275

原创 迭代器逆置容器元素

template void reverse(it begin, it end){ while(begin != end) { --end; if(begin != end) std::swap(*begin++, *end); }}

2016-03-14 13:26:36 302

原创 内部碎片和外部碎片

内部碎片:    内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间;    内部碎片是处于区域内部或页面内部的存储块。占有这些区域或页面的进程并不使用这个存储块。而在进程占有这块存储块时,系统无法利用它。直到进程释放它,或进程结束时,系统才有可能利用这个存储块。    为了有效的利用内存,使内存产生更少的碎片,要对内存分页,内存以页为单位来使用,最

2016-03-13 21:30:00 832

原创 电面的题目分享

参加公司电面题如下:1.单链表逆置,保证空间复杂度O(1);2.叙述TCP滑动窗口机制;3.用sql语句查询学生信息;4.read和sys_read的区别?未完待续。。。。

2016-03-13 21:25:00 217

原创 判断是否为平衡二叉树--递归法

求树的深度用递归做很简单,只要知道递归出口语句的别写错。[cpp] view plaincopystruct BinaryTreeNode  {      int m_Value;      BinaryTreeNode* m_pLeft;      BinaryTreeNode* m_pRight;  }

2016-03-13 21:19:17 540

原创 memset()不能对整形数组初始化

如下demo是可以的,能把数组中的元素值都设置成字符1,#include #include using namespace std;int main(){char a[5];memset(a,'1',5);for(int i = 0;i coutsystem("pause");return 0;}而,如下程序想吧数组中的元素值设置成1,却是不可行

2016-03-13 21:05:42 2629

原创 缺页中断

缺页中断就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。当进程执行过程中发生缺页中断时,需要进行页面换入,步骤如下: 首先硬件会陷入内核,在堆栈中保存程序计数器。大多数机器将当前指令的各种状态信息保存在CPU中特殊的寄存器中。启动一个汇编代码例程保存通用寄存器及其它易失性信息,以免被操作系统破坏。这个例程将操作系统作为一个函数来调用。(在页面换入换出的过程中可能会

2016-03-13 09:51:35 645

原创 单链表逆置不需要创建头结点

void Reverse(Lnode *&L){ Lode *p=L->next,*q; L->next=NULL;while(p!=NULL)//P节点始终指向旧链表的开始节点{ q=p->next; //q节点作为辅助节点来记录p的直接后继节点的位置 p->next=L->next;//将p节点插入到新的链表位置上 L->next=p; p=q;//因为后继节点已经存到了

2016-03-10 14:40:22 368

原创 leetcode-选择数组查找

public class Solution {      public boolean search(int[] A, int target) {           int left = 0, right = A.length - 1;           while( left              int mid = (left + right)/2;        

2016-03-10 14:25:44 172

原创 TCP与UDP区别

TCP保证数据正确性,UDP可能丢包TCP保证数据顺序,UDP不保证TCP是可靠,UDP不可靠socket()的参数不同 UDP Server不需要调用listen和accept UDP收发数据用sendto/recvfrom函数 TCP:地址信息在connect/accept时确定UDP:在sendto/recvfrom函数中每次均 需指定地址信息 UDP:shu

2016-03-09 16:30:10 297

原创 TCP快速重传与快速恢复机制

超时重传是TCP协议保证数据可靠性的一个重要机制,其原理是在发送一个数据以后就开启一个计时器,在一定时间内如果没有得到发送数据报的ACK报文,那么就重新发送数据,直到发送成功为止。这是数据包丢失的情况下给出的一种修补机制。一般来说,重传发生在超时之后,但是如果发送端接收到3个以上的重复ACK,就应该意识到,数据丢了,需要重新传递。这个机制不需要等到重传定时器溢出,所以叫做快速重传,

2016-03-09 16:27:55 673

转载 硬中断和软中断

概述 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行中断处理。 (1) 硬中断由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操

2016-03-09 16:23:10 346

转载 PV操作(-)

操作系统的进程管理中,PV是重点和难点。信号量:信号量是个数据结构。struct semaphore{int value;pcb *blockqueue;}mutex;其中value是信号量的值;blockqueue是等待使用该信号量的进程排成的队列的对手指针。p操作:当一个进程对信号量mutex执行p操作时,执行两个动作:mutex.valu–;        //申请一个资

2015-06-28 10:41:49 1313 1

转载 kmp的next数组值得求法

int get_nextval(SString T,int &nextval[ ]){           //求模式串T的next函数修正值并存入数组nextval。           i=1; nextval[1]=0; j=0;           while(i               if(j==0||T[i]==T[j]){                  

2015-05-21 21:31:33 368

转载 TCP、UDP区别以及TCP传输原理、拥塞避免、连接建立、连接释放总结

TCP、UDP都是属于运输层的协议,提供端到端的进程之间的逻辑通信,而IP协议(网络层)是提供主机间的逻辑通信,应用层规定应用进程在通信时所遵循的协议。一、UDP主要特点:传输的是用户数据报协议。1.UDP是无连接的,即发送数据之前不需要建立连接。2.UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。3.UDP是面向报文的。UDP没有拥塞控制,很适合多媒体通信的要

2015-05-12 21:29:34 471

原创 IPV4 与IPV6 头部结构与其区别

转载源文:http://blog.csdn.net/rao_warrior/article/details/8223500IPV4I P数据报非常简单,就是在数据块(称为净荷)的前面加上一个包头。I P数据报中的数据(包括包头中的数据)以3 2位( 4字节或4个八位组)的方式来组织。图2 - 3中展示了I P头字段的排列。从中可以看出,所有I P数据报头最小长度是5个字( 2 0字

2015-05-12 21:17:11 501

原创 置换算法分析

固定的为进程分配3个页框,驻留集大小固定,进程的执行需要访问5个不同的页,运行该进程需要访问的页地址顺序为: 2 3 2 1 5 2 4 5 3 2 5 2一、           OPT(最佳页面置换算法)该算法选择置换下次访问距当前时间最长的那些页,可以看出该算法可以导致最少的缺页中断,但它要求操作系统能够预知未来的时间,这是不可能实现的,但是该算法可以作为一种标准来衡量其他算

2015-05-09 22:35:26 1353

转载 VF和NF功能介绍

VF:虚拟功能PF:物理功能SR-IOV:SR-IOV 简介SR-IOV 技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性。SR-IOV 标准允许在虚拟机之间高效共享 PCIe(Peripheral Component Interconnect Express,快速外设组件互连)设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的 I/

2015-05-09 10:28:40 4850

原创 班级同学信息管理系统

//界面// JieMian.cpp: implementation of the JieMian class.////////////////////////////////////////////////////////////////////////#include "Stdafx.h"#include "JieMian.h"#include "iostream"#inclu

2015-05-08 20:20:59 1233

经典算法大全

比较不错的算法和代码 用的一些数学问题来作为例题,代码完整的也有,用C代码实现较多,值得拥有

2014-11-14

空空如也

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

TA关注的人

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