树的算法
# 树
// 判断是否是二叉排序树 | |
//tips: 左根右是否是递增序列 | |
typedef struct BiNode | |
{ | |
int data; | |
BiNode *lchild,*rchild; | |
}BiNode,*BiTree; | |
bool judge(BiTree t){ | |
int b1,b2; | |
if(b1==NULL){ | |
return 1; | |
}// 空树 | |
else{ | |
b1 = judge(t->lchild); | |
if(b1==0||pre>t->data){ | |
return 0; | |
} | |
pre = t->data; | |
b2 = judge(t->rchild); | |
} | |
return b2; | |
} | |
// 虽然没错,但过于复杂 | |
// bool inOrder(BiTree t,int arr[]){ | |
// int i = 0; | |
// if(t!=NULL){ | |
// if(t->lchild){ | |
// inOrder(t->lchild,arr); | |
// } | |
// arr[++i] = t->data; | |
// if(t->rchild){ | |
// inOrder(t->rchild,arr); | |
// } | |
// } | |
// int j = 0 | |
// while(j >arr.length){ | |
// int temp = arr[j]; | |
// j = j--; | |
// if(arr[j]>temp){ | |
// return false; | |
// } | |
// } | |
// return true; | |
// } |
设计模式之结构型模式
# 1. 适配器模式 含义:字面意思相当于” 转换接头 “。 适配器的模式结构 1. 对象适配器 构成原则:实现了其中一个对象的接口(service),并对另一个对象 (client) 进行封装。 含义:对象适配器相当于银行柜姐;大致流程如下 客户端 (Client) 是包含当前程序业务逻辑的类。 客户端接口 (Client Interface) 描述了其他类与客户端代码合作时必须遵循的协议。 服务 (Service) 中有一些功能类 (通常来自第三方或遗留系统)。 客户端与其接口不兼容, 因此无法直接调用其功能。 适配器 (Adapter)...
more...设计模式之创建型模式
# 1. 原型模式 原型 (Prototype) 接口将对克隆方法进行声明。 在绝大多数情况下, 其中只会有一个名为 clone 克隆的方法。 具体原型 (Concrete Prototype) 类将实现克隆方法。 除了将原始对象的数据复制到克隆体中之外, 该方法有时还需处理克隆过程中的极端情况, 例如克隆关联对象和梳理递归依赖等等。 客户端 (Client) 可以复制实现了原型接口的任何对象。 含义:原型模式亦是克隆模式。 注意的点:仅仅拷贝 int char long; 而不拷贝 String, 内部数组,引用对象。 前情提要: 1....
more...