摘要:
1.事务 用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。 细节:如果用户没有显示地定义事务,则由DBMS按照缺省规定自动划分事务。 事务通常由BEGIN TRANSACTION开始,以COMMIT或者ROLLBACK结束。2.事务的特性:ACID 原子性(Atomicity):事务是数据库的逻辑工作单位,事务中包括的操作要么都做,要么全不做。 一致性(Consistency):事务的执行结果必须使数据库从一个一致性状态变到另一个一致性状态。 隔离性(Isolation):一个事务的执行不能被其他事务干扰。 永久性(Durability)... 阅读全文
摘要:
快速排序 快速排序是面试中经常问到的排序算法 基本思想:通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小, 则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的 代码如下: 1.swap 交换函数void swap(int& a,int& b){ int temp = a; a = b; b = temp;} 2.Partition函数—快速排序中最关键的函数int Partition(int* list,int low,int high){ int pivot = list[low]; while(... 阅读全文
摘要:
1.进程与线程的区别与联系、进程和程序的区别 进程与线程: 进程是操作系统资源分配与调度的独立单位,线程是CPU调度和分配的基本单位。 线程是进程的一部分,一个没有线程的进程叫单线程的,有多个线程的进程叫做多线程,线程又叫做轻量级的进程 操作系统为进程分配资源,但不会为线程分配资源,线程使用所属进程的资源,进程与进程之前资源是不共享的,线程组之间是共享所属进程的资源 进程控制有PCB表,线程控制有TCB表,但是线程表中的状态要比进程表少很多 进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后, 在保护模式下不会对其它进程产生影响,而线程... 阅读全文
摘要:
1.定义队列typedef struct node{ int data; struct node * next; }Node;typedef struct linkQueue{ Node * first; Node * rear;}Queue;2.两个栈实现一个队列 类定义:#include #include using namespace std;template class CQueue{public: CQueue(); ~CQueue(); void appendTail(const T& node); T deleteHead(... 阅读全文
摘要:
二叉树相关问题,在面试中主要通过递归来实现1.二叉树建立/**二叉树建立**/struct Data{ int val;};typedef struct BiNode { Data data; BiNode * left; BiNode * right;}* BiTree;static BiTree binTree;/**先序创建**/void CreateBiTree(BiTree * T){ cout>data->val; if(data->val == 0) { (*T) = NULL; }else { (... 阅读全文
摘要:
1. 二叉树定义 n个节点的有限集合,该集合或者为空集, 或者由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成2. 二叉树特点 3个节点的二叉树的5个形态 A A A A A / \ / / \ \ B C B B B B / \ / \ C ... 阅读全文
摘要:
问题描述:已知n个人(以编号0,2,3...n-1分别表示)围坐在一起。从编号为0的人开始报数,数到k的那个人出列;他的下一个人又从1开始报数,数到k的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列,最后一个出列的人为胜利者。求胜利者编号.历史背景:Wikipedia: 这个问题是以弗拉维奥·约瑟夫斯命名的,它是1世纪的一名犹太历史学家。他在自己的日记中写道,他和他的40个战友被罗马军队包围在洞中。他们讨论是自杀还是被俘,最终决定自杀,并以抽签的方式决定谁杀掉谁。约瑟夫斯和另外一个人是最后两个留下的人。约瑟夫斯说服了那个人,他们将向罗马军队投降,不再自杀。约瑟夫斯把他的存活 阅读全文
摘要:
C++模板 模板是一种对类型进行参数化的工具; 通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 例如:Max函数 :求两个数的最大值,我们需要对各种数据类型进行重载,如下int Max(int a,int b){ return (a>b?a:b);}double Max(double a,double b){ return (a>b?a:b);} 但如果在主函数中,我们分别定义了 char a,b; 那么在执行max(a,b);时 程序就会出错,因为我们没有定义char类型的重载版本。 此时可以采用函数模板:template T Max(T a,... 阅读全文
摘要:
排序算法主要考点: 7种排序 冒泡排序、选择排序、插入排序、shell排序、堆排序、快速排序、归并排序以上排序算法是面试官经常会问到的算法,至于其他排序比如基数排序等等,这里不列举。以下算法通过c++实现,开发工具Visual Studio 2012:代码下载一、排序 :将杂乱无章的数据元素,通过一定的方法按关键字顺序排列的过程 排序分为内部排序、外部排序; 若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。 反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序 假定在待排序的记录序列中,存在多个具有... 阅读全文