自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据结构篇——散列表(hash table)

散列表散列表(hash table),是把关键值映射到表中到一个位置来存储和访问的。关键值为x,那么pos=f(x),我们把x存储在table[pos]的位置里。这里f(x)就是散列函数(hash function)。有可能出现f(x)=f(y)的情况,这种叫做冲突。好的哈希函数应当减少冲突。但是冲突有时不可避免,如何解决冲突呢?分离链接法将冲突的元素保留在一个链表中,如下查询时,首先利用hash函数找到在哪个位置,之后遍历相应的链表。分离链接哈希表的类型声明:class

2020-05-23 21:09:15 323

原创 习题整理——优先队列UVA11997

UVA 11997思路:先考虑两组数,各取其中一个,组成前k个最小的树a = {a1, a2, a3, a4}, b = {b1, b2, b3, b4},a和b已经全部从小到大排好序如果有3组数,第三组为:c = {c1, c2, c3, c4},假设上边前4个最小的组合构建为 ab = {a1+b1, a1+b2, a2+b1, a2+b2},那么对于ab和c两个数组做同样的操作,得出前k个最小的组合就是三组数中的最小组合。有n组数也是同理。以{1,5,8; 2,5,9..

2020-05-21 21:33:32 241

原创 习题整理——二叉树NOI1758、UVA679、UVA122

NOI 1758如图所示的二叉树,每个节点到根节点只有唯一一条路径,我们的任务是给出两个节点,找到它们的路径的第一个重合的节点。例如,4和10两个节点的路径分别是(4,2,1)和(10,5,2,1)所以第一个重合的节点是2,2就是我们要找的节点。思路:这个二叉树的特点就是每个节点的左孩子是节点的二倍,右孩子是节点的二倍加1. 所以一个节点到根节点的路径只要不断除以2就行。每次循环,两个数较大的数除以二,直到两数相等,就是第一个重合节点了代码:#include<iostream&g

2020-05-21 21:31:24 332

原创 习题整理——队列UVA540、CCF1111

UVA 540有几个组的人一起排队,新来的人如果有组员在队列中,就直接插在组员后边,否则就在队列最后重新排。思路:排好的对永远都是一个组的人挨在一起的:搞一个主队列和几个子队列,主队列记录组别,各个子队列记录已经排在队中的组员:代码:#include<iostream>#include<cstring>#include<queue>#include<map>using namespace std;int main(){

2020-05-21 21:26:18 249

原创 习题整理——栈UVA673、UVA514

UVA673判断括号是否成对,1. 空字符串是成对的2. A是成对的,B也是成对的,那么AB并列起来也是成对的3. A是成对的,A外边套上括号,即(A)或[A],也是成对的。实现方法:#include<iostream>#include<vector>#include<cstring>using namespace std;int main(){ int n; cin>>n; getchar();

2020-05-21 21:24:37 130

原创 算法篇——算法分析

目录一些数学定义时间复杂度最大子序列和问题一些数学定义给定两个函数f和g,1. 如果有正的常数c和n,使得当N≥n时,f(N)≤ g(N),那么f(N) = O(g(N))2.如果有正的常数c和n,使得当N≥n时,f(N)≥g(N),那么f(N) = Ω(g(N))3. 如果f(N) = O(g(N)),并且f(N) = Ω(g(N)),那么f(N) = Θ(g(N))以上的定义在函数之间建立了一种级别,增长率高的,级别要高,比如。对于和,虽然当x较小时,f较...

2020-05-21 21:18:10 1264

原创 数据结构篇——优先队列(堆)

目录优先队列二叉堆堆定义:堆操作插入删除(最小元)降低值增加值删除构建堆(将一个无序的二叉树变为堆)标准模板库的priority_queue优先队列的构造成员函数用到优先队列的例题UVA 11997优先队列优先队列也是一种队列,具有高级别元素先出队的特征。优先队列的工作是找出、返回、删除最高级别元素。优先队列的实现普遍用二叉堆二叉堆二叉堆是一棵完全二叉树,每个节点必须小于等于它的孩子节点,二叉堆可以用一个一维数组表示,如下,左儿子的

2020-05-18 22:09:22 361

原创 数据结构篇——二叉树

1. 二叉树二叉树是一棵树,它的每个节点最多有两个孩子。

2020-05-12 20:56:19 288

原创 数据结构篇——AVL树

AVL树AVL树是一种带有平衡条件的二叉搜索树,它保证每个节点的左子树和右子树高度最多差1。组成高度为h的AVL树,需要最少的节点数S(h) = S(h-1) + S(h-2) + 1,如下图,这个高度为4的AVL树由三部分组成,左子树,右子树和根节点,左子树是高度为2,右子树高度是3,两棵子树都要求节点树最小,分别是S(2)和S(3),最后再加上根节点一个节点。所以高度为4的AVL树,需...

2020-05-12 20:54:05 979

原创 数据结构篇——栈和队列

1. 栈栈也是一种表,不过它有一些限制,它像一个杯子一样,只有一个开口,所以它限制了栈中的元素要后进先出(LIFO)。就像下图,3是最后进栈的,当我们取出元素时,3也是第一个取出的。 栈的操作包括压栈(push)和弹栈(pop),list和vector都可以用作栈的实现。c++标准模板库里还有stack类2. 用到栈的例题2.1 UVA673判断...

2020-05-05 19:00:15 191

原创 数据结构篇——表

目录1. 表2. 表的实现2.1 数组实现2.2 链表2.2.1 链表节点的定义2.2.2 节点的插入2.2.3 节点的删除2.2.4 创建和销毁2.3 vector和list2.3.1 vector的用法2.3.2 list的用法1. 表表是一种重要的数据结构,表可以存放若干个相同类型的元素。比如,成绩表:{98, 82, 99, 79, 10...

2020-04-29 19:49:00 1714

模拟操作系统实验报告(附代码)

本资源为电子科技大学课程《操作系统》实验报告,实验要求为实现一个模拟的操作系统,包括进程管理等等。

2018-01-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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