二叉排序树_创建插入删除
摘要:二叉排序树的学习 经验教训: ①结构体指针声明,最前面要加struct,例如struct BSTNode *lchild;,而不是BSTNode *lchild;。 ②typedef的作用:用来为复杂的声明定义简单的别名。例如,typedef struct BSTNode BST;中BST的作用等效
阅读全文
posted @
2016-12-09 20:31
kuotian
阅读(372)
推荐(0) 编辑
11-散列1 电话聊天狂人
摘要:给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人。 输入格式: 输入首先给出正整数N(≤10^5),为通话记录条数。随后N行,每行给出一条通话记录。简单起见,这里只列出拨出方和接收方的11位数字构成的手机号码,其中以空格分隔。 输出格式: 在一行中给出聊天狂人的手机号码及其通话次数,其
阅读全文
posted @
2016-05-23 14:39
kuotian
阅读(850)
推荐(0) 编辑
10-排序5 PAT Judge
摘要:用了冒泡和插入排序 果然没有什么本质区别。。都是运行超时 用库函数sort也超时 The ranklist of PAT is generated from the status list, which shows the scores of the submittions. This time y
阅读全文
posted @
2016-05-09 13:16
kuotian
阅读(638)
推荐(0) 编辑
10-排序4 统计工龄
摘要:非常简单的一题,运用桶排序理解法,员工数很大,工龄范围在[0, 50]。 以工龄创建每个桶,将每个员工工龄归为不同桶。 给定公司N名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。 输入格式: 输入首先给出正整数N(≤10^5),即员工总人数;随后给出N个整数,即每个员工的工龄,范围在[0
阅读全文
posted @
2016-05-08 23:02
kuotian
阅读(454)
推荐(0) 编辑
09-排序3 Insertion or Heap Sort
摘要:和前一题差不多,把归并排序换成了堆排序。要点还是每一次排序进行判断 开始犯了个错误 堆排序该用origin2 结果一直在排序origin ,误导了半天以为是逻辑错误。。。一直在检查逻辑 建立最大堆 排序并调整下滤 According to Wikipedia: Insertion sort iter
阅读全文
posted @
2016-05-05 11:30
kuotian
阅读(1060)
推荐(0) 编辑
09-排序2 Insert or Merge
摘要:要点就是把排序每一步,判断一下是否和第二组数据相同,若相同则输出排序方法和下一次序列。 According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and growing
阅读全文
posted @
2016-05-05 00:07
kuotian
阅读(1019)
推荐(0) 编辑
09-排序1 排序
摘要:给定N个(长整型范围内的)整数,要求输出从小到大排序后的结果。 本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下: 数据1:只有1个元素; 数据2:11个不相同的整数,测试基本正确性; 数据3:103个随机整数; 数据4:104个随机整数; 数据5:105个随机整数; 数据
阅读全文
posted @
2016-05-04 20:50
kuotian
阅读(594)
推荐(0) 编辑
07-图6 旅游规划
摘要:在邻接矩阵中有两个 一个是长度G 一个是收费cost 在dijkstra基础上,增加了cost的更新,以及路径长度相等时,选取最小cost 有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果
阅读全文
posted @
2016-04-25 16:42
kuotian
阅读(438)
推荐(0) 编辑
07-图4 哈利·波特的考试(最短路径)
摘要:目的:让最难变的那种动物需要的魔咒最短。 用邻接矩阵,用Floyd算法,记录各个顶点间最短距离。 用WeightType FindMaxDist(WeightType D[][MaxVertexNum], Vertex i,int N); 找到该顶点到其他顶点最难的魔咒 再在这些最难的魔咒里选一个最
阅读全文
posted @
2016-04-17 14:11
kuotian
阅读(518)
推荐(0) 编辑
06-图3 六度空间
摘要:广度优先搜索 之前把图的邻接矩阵和邻接表都写了一下,所以这题做起来挺轻松的。 解题思路: 这题顶点的数量很大,边较少,所以采用邻接表来实现了。 用tail记录最后进队的元素,last = tail记录该层tail的值。当last出队时代表层数++; count用来记录六度空间内的顶点数。 “六度空间
阅读全文
posted @
2016-04-10 22:48
kuotian
阅读(715)
推荐(0) 编辑
06-图2 Saving James Bond - Easy Version
摘要:深度优先搜索 这题比较简单,用了数组。在007跳跃范围内,找到鳄鱼,依次直到岸边 return yes。否则No This time let us consider the situation in the movie "Live and Let Die" in which James Bond,
阅读全文
posted @
2016-04-10 19:52
kuotian
阅读(453)
推荐(0) 编辑
06-图1 列出连通集
摘要:深度优先搜索 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N-1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。 输入格式: 输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边
阅读全文
posted @
2016-04-09 11:01
kuotian
阅读(393)
推荐(0) 编辑
05-树9 Huffman Codes
摘要:哈夫曼树 Yes 需满足两个条件:1.HuffmanTree 结构不同,但WPL一定。子串WPL需一致 2.判断是否为前缀码 开始判断用的strstr函数,但其传值应为char *,不能用在string类型。所以后来改用substr。 substr(start,length);start为子串起始位
阅读全文
posted @
2016-04-06 19:46
kuotian
阅读(738)
推荐(0) 编辑
05-树8 File Transfer
摘要:并查集 简单并查集:输入N,代表有编号为1、2、3……N电脑。下标从1开始。初始化为-1。合并后根为负数,负数代表根,其绝对值代表个数。 We have a network of computers and a list of bi-directional connections. Each of
阅读全文
posted @
2016-04-04 14:32
kuotian
阅读(1019)
推荐(0) 编辑
05-树7 堆中的路径
摘要:堆 将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。 输入格式: 每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整
阅读全文
posted @
2016-04-04 12:38
kuotian
阅读(1552)
推荐(0) 编辑
04-树6 Complete Binary Search Tree
摘要:完全二叉树 刚开始只发现了中序遍历是从小到大顺序的。一直在找完全二叉树的层结点间规律。。。放弃了 不曾想,完全二叉树的规律早就知道啊。根结点为i,其左孩子结点2*i, 右孩子结点2*i+1。 结合此两者即可解决问题! A Binary Search Tree (BST) is recursively
阅读全文
posted @
2016-03-26 16:15
kuotian
阅读(468)
推荐(0) 编辑
04-树5 Root of AVL Tree
摘要:平衡二叉树 LL RR LR RL 注意画图理解法 An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ
阅读全文
posted @
2016-03-25 23:56
kuotian
阅读(394)
推荐(0) 编辑
04-树4 是否同一棵二叉搜索树
摘要:二叉搜索树 给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。 输入格式: 输
阅读全文
posted @
2016-03-22 23:07
kuotian
阅读(1602)
推荐(0) 编辑
03-树3 Tree Traversals Again
摘要:二叉树及其遍历 push为前序遍历序列,pop为中序遍历序列。将题目转化为已知前序、中序,求后序。 前序GLR 中序LGR 前序第一个为G,在中序中找到G,左边为左子树L,右边为右子树R。 将左右子树看成新的树,同理。 An inorder binary tree traversal can be
阅读全文
posted @
2016-03-20 00:30
kuotian
阅读(291)
推荐(0) 编辑
03-树2 List Leaves
摘要:二叉树及其遍历 一遍AC,挺开心的hhh~ 简单讲下思路:叶子,顾名思义就是没有左右子树的结点。由于题目要求,叶子结点的输出顺序是从上往下,从左往右。所以用层序遍历法。 当然,这里先找到root树的根。运用队列,将root进队列。然后依次将队头出队,若是叶子则输出,否则且将其有的左右孩子进队,达到层
阅读全文
posted @
2016-03-19 20:29
kuotian
阅读(527)
推荐(0) 编辑