数据结构(浙大)
文章平均质量分 88
中国大学MOOC《数据结构》(浙江大学)笔记+题解
叫我皮卡丘
个人学习记录博客,
展开
-
《数据结构》KMP 串的模式匹配
题目给定两个由英文字母组成的字符串 String 和 Pattern,要求找到 Pattern 在 String 中第一次出现的位置,并将此位置后的 String 的子串输出。如果找不到,则输出“Not Found”。本题旨在测试各种不同的匹配算法在各种数据情况下的表现。各组测试数据特点如下:数据0:小规模字符串,测试基本正确性;数据1:随机数据,String 长度为 105^55 ...原创 2018-11-27 19:31:00 · 6192 阅读 · 0 评论 -
《数据结构》11-散列3 QQ帐户的申请与登陆
题目实现QQ新帐户申请和老帐户登陆的简化版功能。最大挑战是:据说现在的QQ号码已经有10位数了。输入格式:输入首先给出一个正整数N(≤105^55 ),随后给出N行指令。每行指令的格式为:“命令符(空格)QQ号码(空格)密码”。其中命令符为“N”(代表New)时表示要新申请一个QQ号,后面是新帐户的号码和密码;命令符为“L”(代表Login)时表示是老帐户登陆,后面是登陆信息。QQ...原创 2018-11-25 15:17:02 · 1150 阅读 · 0 评论 -
《数据结构》10-排序6 Sort with Swap(0, i)
题目Given any permutation of the numbers {0, 1, 2,…, N−1}, it is easy to sort them in increasing order. But what if Swap(0, *)is the ONLY operation that is allowed to use? For example, to sort {4, 0, 2...原创 2018-11-23 17:04:28 · 821 阅读 · 0 评论 -
《数据结构》11-散列4 Hashing - Hard Version
题目Given a hash table of size N, we can define a hash function H(x)=x%N. Suppose that the linear probing is used to solve collisions, we can easily obtain the status of the hash table with a given seq...原创 2018-11-25 19:40:25 · 2107 阅读 · 1 评论 -
《数据结构》11-散列2 Hashing
题目The task of this problem is simple: insert a sequence of distinct positive integers into a hash table, and output the positions of the input numbers. The hash function is defined to be H(key)=key%T...原创 2018-11-25 10:47:54 · 796 阅读 · 4 评论 -
《数据结构》11-散列1 电话聊天狂人
题目给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人。输入格式:输入首先给出正整数N(≤105^55 ),为通话记录条数。随后N行,每行给出一条通话记录。简单起见,这里只列出拨出方和接收方的11位数字构成的手机号码,其中以空格分隔。输出格式:在一行中给出聊天狂人的手机号码及其通话次数,其间以空格分隔。如果这样的人不唯一,则输出狂人中最小的号码及其通话次数,并且附加给出并...原创 2018-11-25 08:56:13 · 1840 阅读 · 3 评论 -
《数据结构》10-排序5 PAT Judge
题目The ranklist of PAT is generated from the status list, which shows the scores of the submissions. This time you are supposed to generate the ranklist for PAT.Input Specification:Each input file c...原创 2018-11-22 19:19:15 · 841 阅读 · 1 评论 -
《数据结构》10-排序4 统计工龄
题目给定公司N名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。输入格式:输入首先给出正整数N(≤105^55 ),即员工总人数;随后给出N个整数,即每个员工的工龄,范围在[0, 50]。输出格式:按工龄的递增顺序输出每个工龄的员工个数,格式为:“工龄:人数”。每项占一行。如果人数为0则不输出该项。输入样例:810 2 0 5 7 2 5 2输出样例:0:1...原创 2018-11-22 15:06:39 · 907 阅读 · 0 评论 -
《数据结构》09-排序3 Insertion or Heap Sort
题目According to Wikipedia:Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insertion sort removes one element from the input dat...原创 2018-11-21 19:13:14 · 945 阅读 · 0 评论 -
《数据结构》09-排序2 Insert or Merge
分析According to Wikipedia:Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insertion sort removes one element from the input dat...原创 2018-11-21 17:56:36 · 1049 阅读 · 0 评论 -
《数据结构》09-排序1 排序
冒泡排序、插入排序、希尔排序、改进希尔排序、堆排序、递归归并排序、非递归归并排序、快速排序原创 2018-11-21 16:39:12 · 3569 阅读 · 0 评论 -
《数据结构》08-图8 How Long Does It Take
题目Given the relations of all the activities of a project, you are supposed to find the earliest completion time of the project.Input Specification:Each input file contains one test case. Each case ...原创 2018-11-19 10:28:14 · 346 阅读 · 1 评论 -
《数据结构》08-图7 公路村村通
题目现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成本。如果输入数据不...原创 2018-11-18 16:56:29 · 1869 阅读 · 5 评论 -
《数据结构》07-图6 旅游规划
题目有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市...原创 2018-11-17 19:52:28 · 1897 阅读 · 2 评论 -
《数据结构》07-图4 哈利·波特的考试
题目哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。现在哈利·波特的手里有一本教材,里面列出...原创 2018-11-16 20:59:39 · 1533 阅读 · 0 评论 -
《数据结构》06-图3 六度空间
题目“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。图1 六度空间示意图“六度空间”理论虽然得到广泛的认同,并且正在得到越来越多的应用。但是数十年来,试图验证这个理论始终是许多社会学家努力追求的目标。然而由...原创 2018-11-15 08:12:27 · 3956 阅读 · 5 评论 -
《数据结构》06-图2 Saving James Bond - Easy Version
题目This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug dealers. He was sent to a small piece of la...原创 2018-11-14 16:15:43 · 2223 阅读 · 7 评论 -
《数据结构》06-图1 列出连通集
题目给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0 < N ≤ 10)和EEE,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:按照"{v1v2...vkv_1 ...原创 2018-11-13 19:39:10 · 1809 阅读 · 2 评论 -
《数据结构》05-树9 Huffman Codes
哈夫曼编码原创 2018-11-09 00:36:03 · 3041 阅读 · 12 评论 -
《数据结构》05-树8 File Transfer
题目We have a network of computers and a list of bi-directional connections. Each of these connections allows a file transfer from one computer to another. Is it possible to send a file from any comput...原创 2018-11-07 21:04:35 · 1492 阅读 · 2 评论 -
《数据结构》05-树7 堆中的路径
题目将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。输出格式:对输入中给出的每个下标i,在一行中输出从H[i]到根结点的...原创 2018-11-04 11:36:41 · 1152 阅读 · 1 评论 -
《数据结构》04-树7 二叉搜索树的操作集
题目本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X );BinTree Delete( BinTree BST, ElementType X );Position Find( BinTree BST, ElementType X );Position FindMin( BinTree BST ...原创 2018-11-03 08:43:45 · 956 阅读 · 0 评论 -
《数据结构》04-树6 Complete Binary Search Tree
题目A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:The left subtree of a node contains only nodes with keys less than the node’s key.The right ...原创 2018-11-02 16:53:37 · 2073 阅读 · 1 评论 -
《数据结构》04-树5 Root of AVL Tree
题目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 by at most one; if at any time they differ by more than one, rebalancing...原创 2018-11-02 12:08:44 · 2301 阅读 · 3 评论 -
《数据结构》04-树4 是否同一棵二叉搜索树
题目给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L,分别是每个序列插入元素的个数和需要...原创 2018-11-01 19:06:21 · 1815 阅读 · 6 评论 -
《数据结构》03-树3 Tree Traversals Again
An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the stac...原创 2018-10-30 17:43:57 · 2982 阅读 · 4 评论 -
《数据结构》03-树2 List Leaves
题目Given a tree, you are supposed to list all the leaves in the order of top down, and left to right.Input Specification:Each input file contains one test case. For each case, the first line gives a...原创 2018-10-30 11:21:50 · 2382 阅读 · 2 评论 -
《数据结构》03-树1 树的同构
题目给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图一图一图一图二图二图二现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即...原创 2018-10-30 10:39:40 · 8103 阅读 · 16 评论 -
《数据结构》02-线性结构4 Pop Sequence
题目Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of ...原创 2018-10-23 09:24:57 · 6288 阅读 · 5 评论 -
《数据结构》02-线性结构3 Reversing Linked List
题目Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; if K...原创 2018-10-22 11:02:25 · 10303 阅读 · 24 评论 -
《数据结构》02-线性结构2 一元多项式的乘法与加法运算
题目设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2 6...原创 2018-10-21 19:32:48 · 4734 阅读 · 8 评论 -
《数据结构》02-线性结构1 两个有序链表序列的合并
题目本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next;...原创 2018-10-20 17:02:47 · 6862 阅读 · 9 评论 -
《数据结构》01-复杂度3 二分查找
本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last; ...原创 2018-10-12 16:45:37 · 3797 阅读 · 3 评论 -
《数据结构》01-复杂度2 Maximum Subsequence Sum
题目Given a sequence of K integers { N1_11 , N2_22 , …, NK_KK }. A continuous subsequence is defined to be { Ni_ii , Ni+1_{i+1}i+1 , …, Nj_jj } where 1≤i≤j≤K1≤i≤j≤K1≤i≤j≤K. The Max...原创 2018-10-11 19:32:29 · 5652 阅读 · 6 评论 -
《数据结构》01-复杂度1 最大子列和问题
题目给定K个整数组成的序列{ N1_11, N2_22, …, Nk_kk},“连续子列”被定义为{ Ni_{i}i , Ni+1_{i+1}i+1 , …, Nj_jj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最...原创 2018-10-09 23:13:52 · 13230 阅读 · 6 评论 -
数据结构(十七)散列查找
散列查找的基本概念、散列表分离链接法和平方探测法的实现原创 2018-11-27 19:41:41 · 2332 阅读 · 0 评论 -
数据结构(十六)排序
排序算法0. 前言本来准备自己写,无意间看到一位大佬的博文…大家还是移步吧推荐一套自己开发的算法演示工具1. 总结排序方法平均时间复杂度最坏时间复杂度额外空间复杂度稳定性简单选择排序O(N2N^2N2)O(N2N^2N2)O(111)不稳定冒泡排序O(N2N^2N2)O(N2N^2N2)O(111)稳定直接插入排序O(N2N^2N2...原创 2018-11-22 14:59:00 · 2331 阅读 · 0 评论 -
数据结构(十五)最小生成树
最小生成树,最小生成树的 Prim 和 Kruskra 算法实现原创 2018-11-18 17:18:57 · 3198 阅读 · 8 评论 -
数据结构(十四)最短路问题
Dijkstra 和 Floyd 算法的框架描述原创 2018-11-16 21:02:06 · 2980 阅读 · 6 评论 -
数据结构(十三)图的遍历
图的两种遍历:DFS 和 BFS原创 2018-11-15 14:45:48 · 2541 阅读 · 2 评论