
数据结构
坂田银时君
这个作者很懒,什么都没留下…
展开
-
堆的删除
已知小根堆为8,15,10,21,34,16,12,删除关键字 8 之后需重建堆,在此过程中,关键字之间的比较次数是() 。A.1 B.2 C.3 D.4答案:C解析:对于堆顶删除操作,将堆的最后一个节点替换到堆顶,然后自上而下地递归调整。 1.比较12和15,不动 2.比较12和10,交换原创 2017-05-17 10:41:38 · 919 阅读 · 0 评论 -
多路查找树(B树)
B树多路查找树,其每一个结点的孩子数可以多于两个,且每一个结点处可以存储多个元素。B树(B-tree)是一种平衡的多路查找树。结点最大的孩子数目成为B树的阶(order)。特点:1.如果根结点不是叶结点,则其至少有两棵子树。2.每一个非根的分支结点都有k−1k-1个元素和kk个孩子,其中[m/2]≤k≤m[m/2]\le k\le m。(注:[m/2][m/2]表示不小于m/2m/2的最小整数)3.原创 2017-05-17 21:42:12 · 896 阅读 · 0 评论 -
笔记题
1.以下属于逻辑结构的是()A.顺序表 B.哈希表 C.有序表 D.单链表答案:C.数据结构是反映数据的一种形式,它具体分为逻辑结构和物理结构,1,逻辑结构:它是表现数据之间的一种关系的结构,分为线性结构和非线性结构;2,物理结构:它是表现数据的是如何存储的结构,计算机内部是如何安排该数据的存储,通常分为顺序结构,链式结构,索引结构,哈希结构;原创 2017-05-17 15:45:13 · 2398 阅读 · 0 评论 -
队列
队列队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。队头指针front,它指向队头元素;队尾指针rear,它指向下一个入队元素的存储位置(队尾元素的后一个位置)循环结构是队列的存储结构顺序队列和循环队列数组实现和链表实现示例1:循环队列存储在数组A[0..m]中,则入队时的操作为rear=(rear+1)mod(m+1)rear=(rear原创 2017-05-19 10:59:14 · 474 阅读 · 0 评论 -
数据库事务的四大特性以及事务的隔离级别
转载:http://www.cnblogs.com/fjdingsd/p/5273008.html本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务转载 2017-08-04 13:44:12 · 385 阅读 · 0 评论 -
ACM 括号匹配深度
Description经常写程序的你可能有时会因为括号不匹配而收到编译器的报错,今天你的任务不仅仅是检查括号是否匹配,还要检查一下括号最大的嵌套层数,简称深度吧。括号匹配的规则参考编程语言中的括号合法性检查。Input第1行:一个字符串,包含字母、数字和英文括号’(‘、’)’,长度小于10000 多组测试数据,以文件结束EOF作为输入结束Output每组数据输出一行,第N组数据格式如下: 第N行原创 2017-09-12 20:17:49 · 520 阅读 · 0 评论 -
翻转栈(不可以用额外的数组空间和栈)
思路:采用递归的方法实现,注意分情况处理:栈中只有一个元素,栈中元素至少两个元素 代码:template<class T> void reverseStack(stack<T> s){ if(s.empty()) return; else { //判断栈中是不是只有一个元素 T a=s.top(); s.pop(); if(s.empty()) {s.push(原创 2017-10-25 09:36:10 · 682 阅读 · 0 评论 -
非递归求二叉树的深度
可以利用层次遍历,记录层数即二叉树的深度(注意统计每一层结点的个数,以免影响记录层数)//借助层次遍历,非递归class Solution {public: int TreeDepth(TreeNode* pRoot) { queue<TreeNode*> q; if (!pRoot) return 0; q.push(pRoot)原创 2017-10-16 17:19:38 · 1411 阅读 · 0 评论