- 博客(46)
- 资源 (29)
- 收藏
- 关注
原创 MoreThanHalfNumber
#includeint Partition(int *number,int low,int high){ int pivot=number[low]; while(low<high){ while(low=pivot) high--; number[low]=number[high]; while(low<high&&number[low]<=pivot) low++; nu
2016-08-31 11:07:40 265
原创 SecondSearchOptionalTree
#define N 9#include#include#includestruct ElemType{ char key; int weight;};struct SSTable{ ElemType *elem; int length;};typedef struct BiTNode{ ElemType e; BiTNode* lchild; BiTNode* rch
2016-08-30 11:57:40 234
原创 StringPermutation
#includevoid Permutation(char* pStr,char* begin){ if(*begin=='\0') printf("%s\n",pStr); else{ for(char* ch=begin;*ch!='\0';ch++){ char temp=*begin; *begin=*ch; *ch=temp; Permutation
2016-08-30 10:22:18 369
原创 ConvertBinarySearchTree
#define Nil 0#include#includetypedef struct BiTNode{ int data; BiTNode* lchild; BiTNode* rchild;}*BiTree;void CreateBiTree(BiTree &T){ int temp; printf("请输入节点的值\n"); scanf("%d",&temp); if(
2016-08-29 11:14:19 388
原创 BinaryTree
#include#include#ifndef _BITNODE_H_#define _BITNODE_H_typedef struct BiTNode{ int data; BiTNode* lchild; BiTNode* rchild;}*BiTree;#endif#define STACKSIZE 10#define STACKINCREMENT 5#in
2016-08-28 11:17:44 423
原创 CopyComplexNodes
#includestruct ComplexNode{ int value; ComplexNode* next; ComplexNode* sibling;};ComplexNode* CreateComplexNode(int value){ ComplexNode* p=new ComplexNode(); p->value=value; p->next=NULL; p-
2016-08-28 11:15:19 366
原创 PathInTree
#define Nil 0#include#include#includetypedef struct BiTNode{ int data; BiTNode* lchild; BiTNode* rchild;}*BiTree;void CreateBiTree(BiTree &T){ int temp; printf("请输入节点的值!\n"); scanf("%d",&t
2016-08-27 10:07:50 404
原创 VerifySequenceOfBST
#includebool VerifySequenceOfBST(int sequence[],int length){ if(sequence==NULL || length<=0) return false; int root=sequence[length-1]; int i; for(i=0;i<length-1;i++) if(sequence[i]>root)
2016-08-26 10:59:33 224
原创 PrintFromTopToBottom
#define Nil 0#include#includetypedef struct BiTNode{ int data; BiTNode *lchild; BiTNode *rchild;}*BiTree;void CreateBiTree(BiTree &T){ int temp; printf("请输入节点的值\n"); scanf("%d",&temp); if(
2016-08-26 10:14:45 445
转载 DNS解析
一、域名系统1、域名系统概述 域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域(domain)”,因此就出现了“域名”这个名词。“域名系统”明确地指明这种系统是应用在因特网中。
2016-08-25 22:20:14 412
原创 StackWithInOrder
bool isPopOrder(const int* pPush,const int* pPop,int length){ bool flag=false; if(pPush!=NULL&&pPop!=NULL&&length>0){ const int *pPushNext=pPush; const int *pPopNext=pPop; std::stack stackData
2016-08-25 10:31:30 214
原创 MinInStack
#include#includetemplate class MinInStack{public: MinInStack(){}; virtual ~MinInStack(void){}; T& top(); const T& top() const; void push(const T& e); void pop(); const T& min() const;priv
2016-08-24 10:41:06 233
原创 链表操作
#include#includetypedef struct LinkNode{ int data; struct LinkNode* next;}*LinkList;void InitList(LinkList &l){ l=(LinkNode*)malloc(sizeof(LinkNode)); if(!l){ printf("OverFlow!"); exit(1);
2016-08-21 10:45:43 261
原创 MirrorOfBinaryTree
#define Nil 0#include#includetypedef struct BiTNode{ int data; BiTNode *lchild,*rchild;}*BiTree;void CreateBiTree(BiTree &T){ int val; T=(BiTNode*)malloc(sizeof(BiTNode)); if(!T){ printf("
2016-08-18 12:05:45 422
原创 ubStructInTree
#define Nil 0#include#includetypedef struct BiTNode{ int data; BiTNode *lchild,*rchild;}*BiTree;void CreateBiTree(BiTree &T){ int val; T=(BiTNode*)malloc(sizeof(BiTNode)); if(!T){ printf("
2016-08-17 11:22:39 245
原创 CopyOnWriteArrayList的理解与理解
String[] data={"a","b","c"}; ArrayList array = new ArrayList(); array.add("a"); array.add("b"); array.add("c"); for(String s : array){ System.out.println(s); array.remove(s); }输出:Exc
2016-08-16 19:51:41 748
原创 MergeSortedList
#include#includetypedef struct LinkNode{ int val; LinkNode* next;}*LinkList;//不带头结点LinkNode* CreateLink(int n){ LinkList l=NULL;; if(n<=0){ printf("链表为空\n"); return NULL; } l=(LinkNode*
2016-08-16 11:48:06 194
原创 ReseverLink
#include#includetypedef struct LinkNode{ int val; LinkNode* next;}*LinkList;//不带头结点LinkNode* CreateLink(int n){ LinkList l=NULL;; if(n<=0){ printf("链表为空\n"); return NULL; } l=(LinkNode*
2016-08-14 11:53:11 622
原创 FindKthtoTail
#include#includetypedef struct LinkNode{ int val; LinkNode* next;}*LinkList;//不带头结点LinkNode* CreateLink(int n){ LinkList l=NULL;; if(n<=0){ printf("链表为空\n"); return NULL; } l=(LinkNode*
2016-08-14 11:35:07 561
原创 ReordeArray
#includebool isEven(int n){ return (n&1)==0;}void Reorder(int *pData,int length,bool (*fun)(int)){ if(pData==NULL||length==0) return; int temp; int *p=pData; int *q=pData+length-1; while(p<q)
2016-08-14 10:47:45 195
原创 DeleteNode
#include#includetypedef struct LinkNode{ int val; LinkNode* next;}*LinkList;//不带头结点LinkNode* CreateLink(int n){ LinkList l=NULL;; if(n<=0){ printf("链表为空\n"); return NULL; } l=(LinkNode*
2016-08-14 10:08:39 1940
原创 Print1ToMaxNDigits
#include#include#includebool Increment(char* number){ bool overflow=false; int carryover=0; int length=strlen(number); for(int i=length-1;i>=0;i--){ int digit=number[i]-'0'+carryover; if(i=
2016-08-13 11:35:50 280
原创 PowerWithUnsignedExponent
//考虑Exponent周全#includebool invalidInput=false;bool equal(double num1,double num2){ if(num1-num2>-0.0000001&&num1-num2<0.0000001) return true; else return false;}double PowerWithUnsignedExpone
2016-08-12 10:34:10 287
转载 浅谈外存分配的几种方式
原文:http://blog.csdn.net/liuqiyao_01/article/details/39156651外存,指的是除了cpu缓存和内存以外的存储器,硬盘、光盘、U盘都可以被称为外存。所有的数据,也都存在这里面,故他的分配方式变得极其重要,这直接影响到了计算机的运行速度。外存分配方式主要有这几种:连续分配,链式分配,索引分配。一. 连续
2016-08-11 21:44:51 997
转载 strcpy函数的用法
原文:http://blog.sina.com.cn/s/blog_5f82a1060100kz0p.htmlstrcpy(s1,s2);strcpy函数的意思是:把字符串s2中的内容copy到s1中,连字符串结束标志也一起copy.这样s1在内存中的存放为:ch\0;在cout如果说s1的长度是6,那是错误的.你没有弄清strlen与sizeof的意思。strlen函
2016-08-11 18:56:13 4071
原创 Producter And Consumer
package mypack;import java.util.LinkedList;public class Products { private int MAX_SIZE=100; private LinkedList products=new LinkedList(); public boolean isFull(){ return products.size()==MAX
2016-08-11 17:07:30 744
原创 Sqequential Search And Binary Search
#define N 11#include#includestruct SSTable{ int *elem; int length;};void CreateSSTable(SSTable &s,int r[],int n){ int i; s.elem=(int *)malloc(sizeof(int)*(n+1)); if(!s.elem){ printf("OverF
2016-08-11 11:48:07 279
原创 NumberOfOneInBinary
//计算整数中二进制1的个数(采用位运算)#include//向左进行移位int NumberOfOneInBinary(int n){ unsigned int flag=1; int count=0; while(flag){ if(n&flag) count++; flag=flag<<1; } return count;}//int NumberOfOneIn
2016-08-11 10:17:17 241
原创 Fibonacci
//Fibonacci函数递归与循环实现#includelong long Fibonacci_1(unsigned int n){ if(n==0) return 0; if(n==1) return 1; else return Fibonacci_1(n-1)+Fibonacci_1(n-2);}long long Fibonacci(unsigned int n){
2016-08-11 09:41:49 172
原创 面试题--三个线程循环打印ABC10次的几种解决方法
方法一 首先要确定临界资源,然后进行同步,与临界资源的不同要进行阻塞,相同的输出,并进行相应的调整 package mypack;//临界类public class Letters { private char letter='A'; public void nextLetter(){ if(letter=='A') letter='B';
2016-08-10 17:40:07 2134
原创 MinNumberInRotatedArray
//折半查找算法的变种#includeusing namespace std;int minInOrder(int *number,int low,int high){int result=number[low];while(lowif(result>number[low])result=number[low];low++;}return result;
2016-08-10 10:50:26 229
转载 malloc 与new 的区别
从函数声明上可以看出。malloc 和 new 至少有两个不同: new 返回指定类型的指针,并且可以自动计算所需要大小。比如:123int *p;p = new int;//返回类型为int* 类型(整数型指针),分配大小为 sizeof(int);或:
2016-08-09 21:24:22 220
转载 ReentrantLock和synchronized比较
(1)什么情况下可以使用 ReentrantLock使用synchronized 的一些限制: 1、无法中断正在等候获取一个锁的线程;来源:http://blog.csdn.net/quqi99/article/details/5298017Java代码 package test; public interface IBuffer {
2016-08-09 16:33:51 294
原创 StackWithTwoQueues
#include"CStack.h";void main(){ CStack s; s.push('a'); s.push('b'); s.push('c'); cout<<s.pop()<<endl; cout<<s.pop()<<endl; s.push('d'); s.push('e'); cout<<s.pop()<<endl; cout<<s.pop()<<endl
2016-08-09 11:17:36 229
原创 QueueWithTwoStacks
#includeusing namespace std;#include#includetemplate class CQueue{public: CQueue(void); ~CQueue(void); void appendTail(const T& node); T deleteHead();private: stack s1; stack s2;};templ
2016-08-09 10:04:13 507
转载 操作系统之分页分段介绍
原文:http://www.w2bc.com/Article/86892一.虚拟内存的由来1.问题提出: 当直接让进程使用直接的物理内存时,当对物理内存操作时会出现混乱。比如进程A装在0-30的物理内层,在29处是一条ADD指令。而进程B装在30-40处第一条指令为JMP 29.没有使用虚拟内存的话,进程B将直接跳到进程A从而使两者程序都破坏掉。
2016-08-08 22:07:54 14186 2
转载 AomticInteger原理
基础介绍 要对AtomicInteger有一个深入的认识,就必须要了解一下悲观锁和乐观锁。cpu是时分复用的,也就是把cpu的时间片,分配给不同的线程/进程轮流执行,时间片与时间片之间,需要进行cpu切换,也就是会发生进程的切换。切换涉及到清空寄存器,缓存数据。然后重新加载新的thread所需数据。当一个线程被挂起时,加入到阻塞队列,在一定的时间或条件下,在通过notify(),not
2016-08-08 18:54:03 1855
原创 顺序表基本操作
/*顺序表实现的集合的交、并、插入、删除*/#define LISTSIZE 15#define LISTINCREMENT 8#include#includestruct SqList{ int *elem; int length; int listsize;};void InitList(SqList &l){ l.elem=(int*)malloc(sizeof(i
2016-08-07 17:18:44 472
原创 PrintLinkReverse
//从尾向前输出链表节点:借助栈,或递归#include#includetypedef struct LinkNode{int val;LinkNode *next;}*LinkList;//没有头结点LinkNode* CreateLinkList(){int n,i;LinkNode *l,*p,*q;l=NULL;printf("请输入链表节点
2016-08-07 09:50:27 469
转载 内存映射文件原理探索
原文:http://blog.chinaunix.net/uid-20761674-id-3072683.html原理首先,“映射”这个词,就和数学课上说的“一一映射”是一个意思,就是建立一种一一对应关系,在这里主要是只 硬盘上文件 的位置与进程 逻辑地址空间 中 一块大小相同的区域之间的一一对应,如图1中过程1所示。这种对应关系纯属是逻辑上的概念,物理上是不存在的,原因是进程
2016-08-06 21:46:50 235
ajdt2.2.3 for eclipse 4.3 (AspectJ Eclipse 插件
2017-05-03
win7 64位 DNW的USB驱动程序
2014-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人