数据结构

作为一名架构师,我们应该掌握的技术是什么?

12-05
作为一名架构师,我们应该掌握哪些技术呢? 占占简单来谈一下: 面向对象OOP的理解,我是说理解,我不希望你告诉我百度里的概念! 常用的数据结构,对于常见的数据结构,算法,应该知道一些! WEB服务,对于分布式,大一点的项目都会遇到,你可以用WS,WCF,Remoting去实现它,它们的原理是你应该知道的,因为你是一名架构师,兄弟们都指着你呢,呵呵! 全文检索:lucene.net,当然lucene只是实现全文检索的一种方式,你可以使用其它文件索引来干这事 NOSQL:你可以选用不同的开源项目,r

大叔推荐博客索引

12-05
以下是我的所有推荐文章,其中多半是文章系列,并且这个索引会在以后过程中进行追加,所以,各位看到的,永远都不是最新的,呵呵! 大叔推荐文章系列 DotNetCore跨平台~文章索引-永久更新(New) Lind.DDD敏捷领域驱动框架~介绍 (New) Linux~学习笔记目录索引(New) Nginx学习笔记~目录索引(New) Docker~学习笔记索引(New) MongoDB学习笔记系列(New) Redis学习笔记~目录 爱上MVC系列~目录 EF架构~系列目录 WebApi系列~目录(

20120918-LIST类定义《数据结构与算法分析》

12-05
LIST类结构 1 template <typename Object> 2 class List 3 { 4 private: 5 struct Node//所有都是公有的 6 { 7 Object data; 8 Node *prev; 9 Node *next; 10 11 Node(const Object & d = Object(),Node *p = NUll,Node *n = Null): 12 data(d) , prev(p) , next(n) 13 { 14

20120918-双向链表类定义《数据结构与算法分析》

12-05
将新的节点插入双向链表的时候: iterator insert(iterator itr,const Object & x)//向双向链表中插入一个x节点 { Node *p = itr.current; theSize++; return iterator(p->prev = p->prev->next = new Node(x,p->prev,p)); } LIST类的删除节点的过程: //删除双向链表中的一个节点 iterator erase(iterator itr

20120919-二叉树 数据结构《数据结构与算法分析》

12-05
又是一次的毕业季,羡慕嫉妒啊.... 二叉查找树类的框架: 1 template <typename Comparable> 2 class BinarySearchTree 3 { 4 public: 5 BinarySearchTree(); 6 BinarySearchTree(const BinarySearchTree & rhs) 7 ~BinarySearchTree(); 8 9 const Comparable & findMin() const; 10 co

20120920-AVL树定义《数据结构与算法分析》

12-05
AVL树节点声明: 1 struct AvlNode 2 { 3 Comparable element; 4 AvlNode *left; 5 AvlNode *right; 6 int height; 7 8 AvlNode( const Comparable & theElement,AvlNode *lt,AvlNode *rt,int h=0):element ( theElement),left(lt),right(rt),height(t) 9 }; 计算节点高度: 1 int he

二叉堆

12-05
容易证明: 一棵高为h的完全二叉树有2^h 到 2^(h+1)-1个结点. 这就意味着,完全二叉树的高是[logN] 特点: 任意位置i: 左儿子在位置2i上,右儿子在位置2i+1上,父亲在i/2上 一个堆数据结构将由一个Comparable数组和一个代表当前堆的大小的整数组成: 优先队列的接口: 1 template <typename Comparable> 2 class BinaryHeap 3 { 4 public: 5 explicit BinaryHeap ( int capac

Redis初级介绍

12-05
1 什么是Redis Redis(REmote DIctionary Server,远程数据字典服务器)是开源的内存数据库,常用作缓存或者消息队列. Redis的特点: Redis存在于内存,使用硬盘作为持久化:每秒十万读写. 具有丰富的数据结构,字符串.哈希表.列表.集合.有序集合:提供交集.并集.差集等操作. 设置TTL存活时间,到期自动删除. Redis单线程.Memcached多线程:对于一般的应用场景,单线程也足够使用,优势还是在于多数据类型.持久化. 可以将数据复制到任意数量的从服务

链表之链式存储

12-05
优点: 1 空间存储方便,现用现申请 2 插入删除,只针对单一数据,不需要移动大量数据 缺点: 1 读取,插入,删除慢,需要从头查找,时间复杂度均为O(n) 数据结构声明 typedef struct Node{ int data; struct Node * next; }Node; int main(){ ... Node *p = (Node *)malloc(sizeof(Node)); p->data = 1; ... } 链表读取指定位置的元素 void getNode(Node *

共享栈

12-05
共享栈,即是两个栈使用同一段存储空间. 第一个栈从数组头开始存储,第二个栈从数组尾开始,两个栈向中间拓展. 当top1+1==top2或者top1==top2-1时,即staock overflow!. 与普通栈一样,共享栈出栈入栈的时间复杂度仍为O(1). 数据结构 typedef struct shareStack{ int data[MAXSIZE]; int top1; int top2; }shareStack; 出栈操作 该数据,仅存的是非负数,因此如果想要存储更复杂的操作,可以在判

STL中的set容器的一点总结

12-04
1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作.vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入.排序.删除.查找等.让用户在STL使用过程中,并不会感到陌生. 关于set,必须说明的是set关联式容器.set作为一个容器也是

【面试虐菜】—— JAVA面试题(3)

12-04
1 throws与throw的区别 解析:throws和throw是异常处理时两个常见的关键字,初级程序员常常容易正确理解throw和throws的作用和区别,说明已经能比较深入理解异常处理.Throw用来抛出异常,如果执行了throw语句,程序将发生异常,进入到异常处理机制.Throws用来声明异常,说明这个方法可能会发生某些类型的异常,那么编译器将强制在调用这个方法的时候处理异常.API中的很多方法都使用了throws声明了异常,所以使用这些方法时编译器会提示需要处理异常.   参考答案:t

《Spark MLlib 机器学习实战》1——读后总结

12-04
1 概念 2 安装 3 RDD RDD包含两种基本的类型:Transformation和Action.RDD的执行是延迟执行,只有Action算子才会触发任务的执行. 宽依赖和窄依赖用于切分任务,如果都是窄依赖,那么就可以最大化的利用并行. 常用操作: cache 缓存 cartesian 笛卡尔积 coalesce 重分区 countByValue 分组统计 distinct 去除重复 filter 过滤 flatMap map groupBy 分组 keyBy 增加key reduce 拼接

oracle数据结构

12-04
数据类型: 1 字符数据:CHAR VARCHAR NCHAR NVARCHAR2 LONG CLOB NCLOB 2 数字数据类型:NUMBER 唯一用来存储数字型的类型 3 日期数据类型: 4 raw解释型 串联: || NUM1 || NUM2 = "12"(num1 =1 num2 = 2) NULL: NULL=NULL也为假.NULL不等于任何值,包括自己 表:行的集合 视图:通过SQL语句来定义的 索引:如果建立索引的列包含的值为NULL,那么索引不会包含这行数据 B*树

oracle多用户并发及事务处理

12-04
多用户并发访问 事务:作用于某些数据的一个不可分割的操作 锁:写锁.互斥锁(仅能被一个进程使用) 读锁.共享锁(可被多个进程使用) 更新丢失 脏读 不可重复读 幻影读 隔离级别: 1 READ COMMITTED 每个语句得到完整的视图 2 SERIALIZABLE 事务级别实施串行化 Oracle并发特性 1 回滚段:存储"撤销"信息的数据结构 redo日志用来记录数据库的所有事务:回滚段用于提供事务回滚和读一致性 2 系统改变号 SCN:保证事务执行的顺序 3 数据块中的锁:每个锁

共享池

12-04
SGA包括: 1 数据结构部分 fixed size 2 数据块缓冲区 database buffers 3 redo log缓冲区 redo buffers 4 共享池 variable size 永久使用的共享内存:进程信息数据.会话信息数据.特殊用途的内存段 随着共享池碎片化加剧:产生ORA-4031错误 1 加大初始的分配值 2 每次扩展一个组 共享池内部结构: 1 PERMANENT 2 FREEABLE 3 RECERATEABLE 4 FREEABLE WITH MARK 通过内部

数据结构~树的遍历(Service层和UI层代码)

12-04
问题是这样的,Department表是一个部门表,由DeptId,name和Father组成,它是一种树型的关系,一个部门下可以有多个子部门,同时,它有一个父部门,祖宗部门没有父部门. 以下是测试数据(相当于Data层里取出数据的方法): static List<Department> deptList = new List<Department> { new Department(1,"根",0), new Department(2,"计算机&quo

MVC中实现部分内容异步加载

12-04
action中定义一个得到结果集的方法 public ActionResult GetItemTree(string title, int itemid, int? page) { pp = new PagingParam(page ?? 1, VConfig.WebConstConfig.PageSize); Common.Page.PagedList<Entity.Res_Item_Resource_R> res_Item_Resource_R = iResourceService.Get

C#版数据结构之--线性表的链式存储(单链表)

12-25
1.单链表的定义和由来: 链表是用一组地址可能连续也可能不连续的存储单元来存储线性表中的数据元素,在存储数据元素时,除了要存储数据元素本身之外,还要存储与它相邻的数据元素的地址信息,这两部分组成了线性表中一个数据元素的映像,称之为"结点",存储数据元素本身的部分称之为:数据域,存储相邻数据元素地址的部分称之为:地址域,所有节点通过地址域链接起来,像一个链条,故用此种方式存储的线性表称之为:链表.如果节点的地址域只存储了数据元素的直接后继的存储地址,则称这种链表为:单链表. 与数序表相比

Entity Framework快速入门

02-20
实体框架(Entity Framework)简介 实体框架Entity Framework 是 ADO.NET 中的一组支持开发面向数据的软件应用程序的技术.是微软的一个ORM框架. ORM知识补充:什么是O/R Mapping? 广义上,ORM指的是面向对象的对象模型和关系型数据库的数据结构之间的相互转换. 狭义上,ORM可以被认为是,基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口.理想情况下,基于这样一个面向对象的接口,持久化一个OO对象应该不需要要了解任何关系型数据库存储