二叉树(三)——非递归遍历

1、前序遍历 根据前序遍历访问的顺序,优先访问根结点,然后再分别访问左孩子和右孩子。即对于任一结点,其可看做是根结点,因此可以直接访问,访问完之后,若其左孩子不为空,按相同规则访问它的左子树;当访问其左子树时,再访问它的右子树。因此其处理过程,对于任一结点P: (1)访问结点P,并将结点P入栈...

2016-10-15 10:07:06

阅读数 236

评论数 0

二叉树(二)——递归遍历

1、前序遍历 前序遍历按照“根结点-左孩子-右孩子”的顺序进行访问。//前序遍历 void preorder(TreeNode *root, vector<int> &path) { if(root != NULL) { path.push_b...

2016-10-15 09:53:52

阅读数 185

评论数 0

数据库中的锁

1、概述 1.1 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 1.1.1 丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统。1.1.2 脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某...

2016-10-13 20:56:51

阅读数 343

评论数 0

二叉树(一)——遍历方式

1、二叉树的遍历方式 (1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树。简记根-左-右。 (2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树。简记左-根-右。 (3)后序遍历(LRD),首先遍历左子树,然后遍历右子树,最后访问根结点。简记左-右-...

2016-10-13 08:50:08

阅读数 307

评论数 0

Java实现冒泡排序、快速排序、选择排序、插入排序和归并排序

1、常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,归并排序等。1.1 冒泡排序   冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个...

2016-09-22 09:02:51

阅读数 330

评论数 0

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